PPJ Compiler - Valid Programs Report

Total programs: 90

program1.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_RETURN          return
     7   BROJ               0
     8   TOCKAZAREZ         ;
     9   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_RETURN              2       6
BROJ                   2       7
TOCKAZAREZ             2       8
D_VIT_ZAGRADA          3       9
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (2,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (2,0) [type=int]
                            TOCKAZAREZ (2,;)
                D_VIT_ZAGRADA (3,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Compound statement
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program10.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = 10;
    if (x < y) {
        return 1;
    } else {
        return 0;
    }
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   BROJ               10
     12   KR_IF              if
     13   OP_LT              <
     14   KR_RETURN          return
     15   BROJ               1
     16   D_VIT_ZAGRADA      }
     17   KR_ELSE            else
     18   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_IF                  6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_LT                  6       13
IDN                    6       8
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_RETURN              7       14
BROJ                   7       15
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       16
KR_ELSE                8       17
L_VIT_ZAGRADA          8       5
KR_RETURN              9       14
BROJ                   9       18
TOCKAZAREZ             9       7
D_VIT_ZAGRADA         10       16
D_VIT_ZAGRADA         11       16
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_grananja>
                            KR_IF , if
                            L_ZAGRADA , (
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                                                OP_LT , <
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            D_ZAGRADA , )
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                            KR_ELSE , else
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 0
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_grananja>
                            KR_IF , if
                            L_ZAGRADA , (
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                                                OP_LT , <
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            D_ZAGRADA , )
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                            KR_ELSE , else
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 0
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

    Nested Scope 2:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,x) [symbol=x]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,5) [type=int]
                                    TOCKAZAREZ (4,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (5,y) [symbol=y]
                                        OP_PRIDRUZI (5,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (5,10) [type=int]
                                TOCKAZAREZ (5,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_grananja>> [lvalue=false, elements=0]
                            KR_IF (6,if)
                            L_ZAGRADA (6,()
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (6,x) [symbol=x]
                                                                OP_LT (6,<)
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (6,y) [symbol=y]
                            D_ZAGRADA (6,))
                            <<naredba>> [lvalue=false, elements=0]
                                <<slozena_naredba>> [lvalue=false, elements=0]
                                    L_VIT_ZAGRADA (6,{)
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<naredba_skoka>> [lvalue=false, elements=0]
                                                KR_RETURN (7,return)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (7,1) [type=int]
                                                TOCKAZAREZ (7,;)
                                    D_VIT_ZAGRADA (8,})
                            KR_ELSE (8,else)
                            <<naredba>> [lvalue=false, elements=0]
                                <<slozena_naredba>> [lvalue=false, elements=0]
                                    L_VIT_ZAGRADA (8,{)
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<naredba_skoka>> [lvalue=false, elements=0]
                                                KR_RETURN (9,return)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (9,0) [type=int]
                                                TOCKAZAREZ (9,;)
                                    D_VIT_ZAGRADA (10,})
                D_VIT_ZAGRADA (11,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
; If-else statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_ELSE1           ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
        JP L_END1               ; skip else
L_ELSE1                         ; else clause
; Compound statement
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if-else
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program11.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (x >= 5) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_GTE             >=
     12   KR_RETURN          return
     13   BROJ               1
     14   D_VIT_ZAGRADA      }
     15   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_GTE                 4       11
BROJ                   4       9
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       12
BROJ                   5       13
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       14
KR_RETURN              7       12
BROJ                   7       15
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       14
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_GTE , >=
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_GTE , >=
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (4,if)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                    OP_GTE (4,>=)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,5) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 5, R0              ; load constant 5
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGE L_SC_TRUE1       ; comparison OP_GTE
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program12.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (x <= 5) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_LTE             <=
     12   KR_RETURN          return
     13   BROJ               1
     14   D_VIT_ZAGRADA      }
     15   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_LTE                 4       11
BROJ                   4       9
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       12
BROJ                   5       13
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       14
KR_RETURN              7       12
BROJ                   7       15
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       14
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_LTE , <=
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_LTE , <=
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (4,if)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                    OP_LTE (4,<=)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,5) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 5, R0              ; load constant 5
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLE L_SC_TRUE1       ; comparison OP_LTE
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program13.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (x == 5) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_EQ              ==
     12   KR_RETURN          return
     13   BROJ               1
     14   D_VIT_ZAGRADA      }
     15   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_EQ                  4       11
BROJ                   4       9
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       12
BROJ                   5       13
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       14
KR_RETURN              7       12
BROJ                   7       15
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       14
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                OP_EQ , ==
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                OP_EQ , ==
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (4,if)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                OP_EQ (4,==)
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,5) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 5, R0              ; load constant 5
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE1        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program14.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (x != 0) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_NEQ             !=
     12   BROJ               0
     13   KR_RETURN          return
     14   BROJ               1
     15   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_NEQ                 4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       13
BROJ                   5       14
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       15
KR_RETURN              7       13
BROJ                   7       12
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                OP_NEQ , !=
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                OP_NEQ , !=
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (4,if)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                OP_NEQ (4,!=)
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,0) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_NE L_SC_TRUE1        ; comparison OP_NEQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program15.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = 10;
    if (x > 0 && y > 0) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   BROJ               10
     12   KR_IF              if
     13   OP_GT              >
     14   BROJ               0
     15   OP_I               &&
     16   KR_RETURN          return
     17   BROJ               1
     18   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_IF                  6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_GT                  6       13
BROJ                   6       14
OP_I                   6       15
IDN                    6       8
OP_GT                  6       13
BROJ                   6       14
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_RETURN              7       16
BROJ                   7       17
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       18
KR_RETURN              9       16
BROJ                   9       14
TOCKAZAREZ             9       7
D_VIT_ZAGRADA         10       18
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                                OP_I , &&
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , y
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                                OP_I , &&
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , y
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,x) [symbol=x]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,5) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,y) [symbol=y]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,10) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (6,if)
                                L_ZAGRADA (6,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,x) [symbol=x]
                                                                        OP_GT (6,>)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (6,0) [type=int]
                                                OP_I (6,&&)
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (6,y) [symbol=y]
                                                                    OP_GT (6,>)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (6,0) [type=int]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (7,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (7,1) [type=int]
                                                    TOCKAZAREZ (7,;)
                                        D_VIT_ZAGRADA (8,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (9,0) [type=int]
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE2       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_SC_FALSE1       ; short-circuit: left is false
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE3       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_EQ L_SC_FALSE1       ; right is false
        MOVE 1, R0              ; result is true
        JP L_SC_END1
L_SC_FALSE1
        MOVE 0, R0              ; result is false
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program16.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 0;
    y = 10;
    if (x > 0 || y > 0) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   BROJ               10
     12   KR_IF              if
     13   OP_GT              >
     14   OP_ILI             ||
     15   KR_RETURN          return
     16   BROJ               1
     17   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_IF                  6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_GT                  6       13
BROJ                   6       10
OP_ILI                 6       14
IDN                    6       8
OP_GT                  6       13
BROJ                   6       10
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_RETURN              7       15
BROJ                   7       16
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       17
KR_RETURN              9       15
BROJ                   9       10
TOCKAZAREZ             9       7
D_VIT_ZAGRADA         10       17
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                            OP_ILI , ||
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , y
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                            OP_ILI , ||
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , y
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,x) [symbol=x]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,0) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,y) [symbol=y]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,10) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (6,if)
                                L_ZAGRADA (6,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,x) [symbol=x]
                                                                        OP_GT (6,>)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (6,0) [type=int]
                                            OP_ILI (6,||)
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (6,y) [symbol=y]
                                                                    OP_GT (6,>)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (6,0) [type=int]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (7,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (7,1) [type=int]
                                                    TOCKAZAREZ (7,;)
                                        D_VIT_ZAGRADA (8,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (9,0) [type=int]
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE2       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_NE L_SC_TRUE1        ; short-circuit: left is true
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE3       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_NE L_SC_TRUE1        ; right is true
        MOVE 0, R0              ; result is false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; result is true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program17.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (!(x == 0)) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_NEG             !
     12   OP_EQ              ==
     13   BROJ               0
     14   KR_RETURN          return
     15   BROJ               1
     16   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
OP_NEG                 4       11
L_ZAGRADA              4       2
IDN                    4       6
OP_EQ                  4       12
BROJ                   4       13
D_ZAGRADA              4       4
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       14
BROJ                   5       15
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       16
KR_RETURN              7       14
BROJ                   7       13
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       16
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <unarni_operator>
                                                                                        OP_NEG , !
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    L_ZAGRADA , (
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <jednakosni_izraz>
                                                                                                                                        <odnosni_izraz>
                                                                                                                                            <aditivni_izraz>
                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                    <cast_izraz>
                                                                                                                                                        <unarni_izraz>
                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                    IDN , x
                                                                                                                                    OP_EQ , ==
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                BROJ , 0
                                                                                                    D_ZAGRADA , )
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <unarni_operator>
                                                                                        OP_NEG , !
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    L_ZAGRADA , (
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <jednakosni_izraz>
                                                                                                                                        <odnosni_izraz>
                                                                                                                                            <aditivni_izraz>
                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                    <cast_izraz>
                                                                                                                                                        <unarni_izraz>
                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                    IDN , x
                                                                                                                                    OP_EQ , ==
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                BROJ , 0
                                                                                                    D_ZAGRADA , )
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (4,if)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_operator>> [lvalue=false, elements=0]
                                                                                        OP_NEG (4,!)
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    L_ZAGRADA (4,()
                                                                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    IDN (4,x) [symbol=x]
                                                                                                                                    OP_EQ (4,==)
                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                BROJ (4,0) [type=int]
                                                                                                    D_ZAGRADA (4,))
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If statement
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program18.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    i = 0;
    while (i < 10) {
        i = i + 1;
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               0
     10   KR_WHILE           while
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   D_VIT_ZAGRADA      }
     16   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_WHILE               4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_LT                  4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
OP_PRIDRUZI            5       8
IDN                    5       6
PLUS                   5       13
BROJ                   5       14
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       15
KR_RETURN              7       16
IDN                    7       6
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , i
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , i
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_WHILE (4,while)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,i) [symbol=i]
                                                                    OP_LT (4,<)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,10) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        IDN (5,i) [symbol=i]
                                                            OP_PRIDRUZI (5,=)
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (5,i) [symbol=i]
                                                                                                PLUS (5,+)
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (7,i) [symbol=i]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to i
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to i
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program19.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    i = 0;
    while (i < 5) {
        i = i + 1;
        if (i == 3) {
            break;
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               0
     10   KR_WHILE           while
     11   OP_LT              <
     12   BROJ               5
     13   PLUS               +
     14   BROJ               1
     15   KR_IF              if
     16   OP_EQ              ==
     17   BROJ               3
     18   KR_BREAK           break
     19   D_VIT_ZAGRADA      }
     20   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_WHILE               4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_LT                  4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
OP_PRIDRUZI            5       8
IDN                    5       6
PLUS                   5       13
BROJ                   5       14
TOCKAZAREZ             5       7
KR_IF                  6       15
L_ZAGRADA              6       2
IDN                    6       6
OP_EQ                  6       16
BROJ                   6       17
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_BREAK               7       18
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       19
D_VIT_ZAGRADA          9       19
KR_RETURN             10       20
IDN                   10       6
TOCKAZAREZ            10       7
D_VIT_ZAGRADA         11       19
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , i
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , i
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_WHILE (4,while)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,i) [symbol=i]
                                                                    OP_LT (4,<)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,5) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (5,i) [symbol=i]
                                                                OP_PRIDRUZI (5,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (5,i) [symbol=i]
                                                                                                    PLUS (5,+)
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (5,1) [type=int]
                                                        TOCKAZAREZ (5,;)
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (6,if)
                                                    L_ZAGRADA (6,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (6,i) [symbol=i]
                                                                                    OP_EQ (6,==)
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (6,3) [type=int]
                                                    D_ZAGRADA (6,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (6,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_BREAK (7,break)
                                                                        TOCKAZAREZ (7,;)
                                                            D_VIT_ZAGRADA (8,})
                                        D_VIT_ZAGRADA (9,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (10,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (10,i) [symbol=i]
                            TOCKAZAREZ (10,;)
                D_VIT_ZAGRADA (11,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to i
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 5, R0              ; load constant 5
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to i
; If statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 3, R0              ; load constant 3
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE2        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
; Break statement (TODO)
L_END1                          ; end if
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program2.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_RETURN          return
     11   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_RETURN              4       10
IDN                    4       6
TOCKAZAREZ             4       7
D_VIT_ZAGRADA          5       11
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (3,x) [symbol=x]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,5) [type=int]
                                TOCKAZAREZ (3,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (4,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (4,x) [symbol=x]
                            TOCKAZAREZ (4,;)
                D_VIT_ZAGRADA (5,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program20.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    i = 0;
    while (i < 10) {
        i = i + 1;
        if (i % 2 == 0) {
            continue;
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               0
     10   KR_WHILE           while
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   KR_IF              if
     16   OP_MOD             %
     17   BROJ               2
     18   OP_EQ              ==
     19   KR_CONTINUE        continue
     20   D_VIT_ZAGRADA      }
     21   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_WHILE               4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_LT                  4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
OP_PRIDRUZI            5       8
IDN                    5       6
PLUS                   5       13
BROJ                   5       14
TOCKAZAREZ             5       7
KR_IF                  6       15
L_ZAGRADA              6       2
IDN                    6       6
OP_MOD                 6       16
BROJ                   6       17
OP_EQ                  6       18
BROJ                   6       9
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_CONTINUE            7       19
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       20
D_VIT_ZAGRADA          9       20
KR_RETURN             10       21
IDN                   10       6
TOCKAZAREZ            10       7
D_VIT_ZAGRADA         11       20
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , i
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                    OP_MOD , %
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 0
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_CONTINUE , continue
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , i
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                    OP_MOD , %
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 0
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_CONTINUE , continue
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_WHILE (4,while)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,i) [symbol=i]
                                                                    OP_LT (4,<)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,10) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (5,i) [symbol=i]
                                                                OP_PRIDRUZI (5,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (5,i) [symbol=i]
                                                                                                    PLUS (5,+)
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (5,1) [type=int]
                                                        TOCKAZAREZ (5,;)
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (6,if)
                                                    L_ZAGRADA (6,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (6,i) [symbol=i]
                                                                                                    OP_MOD (6,%)
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (6,2) [type=int]
                                                                                    OP_EQ (6,==)
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (6,0) [type=int]
                                                    D_ZAGRADA (6,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (6,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_CONTINUE (7,continue)
                                                                        TOCKAZAREZ (7,;)
                                                            D_VIT_ZAGRADA (8,})
                                        D_VIT_ZAGRADA (9,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (10,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (10,i) [symbol=i]
                            TOCKAZAREZ (10,;)
                D_VIT_ZAGRADA (11,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to i
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to i
; If statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE2        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
; Continue statement (TODO)
L_END1                          ; end if
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program21.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    for (i = 0; i < 10; i = i + 1) {
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   KR_FOR             for
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   D_VIT_ZAGRADA      }
     16   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_FOR                 3       8
L_ZAGRADA              3       2
IDN                    3       6
OP_PRIDRUZI            3       9
BROJ                   3       10
TOCKAZAREZ             3       7
IDN                    3       6
OP_LT                  3       11
BROJ                   3       12
TOCKAZAREZ             3       7
IDN                    3       6
OP_PRIDRUZI            3       9
IDN                    3       6
PLUS                   3       13
BROJ                   3       14
D_ZAGRADA              3       4
L_VIT_ZAGRADA          3       5
D_VIT_ZAGRADA          4       15
KR_RETURN              5       16
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (3,for)
                                L_ZAGRADA (3,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                        OP_LT (3,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,10) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (3,i) [symbol=i]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                            PLUS (3,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,1) [type=int]
                                D_ZAGRADA (3,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (3,{)
                                        D_VIT_ZAGRADA (4,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,i) [symbol=i]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program22.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    int sum;
    sum = 0;
    for (i = 1; i <= 10; i = i + 1) {
        sum = sum + i;
    }
    return sum;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   IDN                sum
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   KR_FOR             for
     12   BROJ               1
     13   OP_LTE             <=
     14   BROJ               10
     15   PLUS               +
     16   D_VIT_ZAGRADA      }
     17   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       8
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
KR_FOR                 5       11
L_ZAGRADA              5       2
IDN                    5       6
OP_PRIDRUZI            5       9
BROJ                   5       12
TOCKAZAREZ             5       7
IDN                    5       6
OP_LTE                 5       13
BROJ                   5       14
TOCKAZAREZ             5       7
IDN                    5       6
OP_PRIDRUZI            5       9
IDN                    5       6
PLUS                   5       15
BROJ                   5       12
D_ZAGRADA              5       4
L_VIT_ZAGRADA          5       5
IDN                    6       8
OP_PRIDRUZI            6       9
IDN                    6       8
PLUS                   6       15
IDN                    6       6
TOCKAZAREZ             6       7
D_VIT_ZAGRADA          7       16
KR_RETURN              8       17
IDN                    8       8
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       16
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , sum
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , sum
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , sum
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , sum
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , sum
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , sum
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT
    sum : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            IDN (2,i) [symbol=i]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                        IDN (3,sum) [symbol=sum]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,sum) [symbol=sum]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,0) [type=int]
                                    TOCKAZAREZ (4,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (5,for)
                                L_ZAGRADA (5,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,i) [symbol=i]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,1) [type=int]
                                    TOCKAZAREZ (5,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (5,i) [symbol=i]
                                                                        OP_LTE (5,<=)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (5,10) [type=int]
                                    TOCKAZAREZ (5,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (5,i) [symbol=i]
                                        OP_PRIDRUZI (5,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (5,i) [symbol=i]
                                                                            PLUS (5,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (5,1) [type=int]
                                D_ZAGRADA (5,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (5,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        IDN (6,sum) [symbol=sum]
                                                            OP_PRIDRUZI (6,=)
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (6,sum) [symbol=sum]
                                                                                                PLUS (6,+)
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (6,i) [symbol=i]
                                                    TOCKAZAREZ (6,;)
                                        D_VIT_ZAGRADA (7,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,sum) [symbol=sum]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
; Local variable sum at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-8)        ; assign to sum
; For loop with increment (TODO)
        LOAD R0, (R7-8)         ; load variable sum
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program23.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    for (i = 0; i < 10; i = i + 1) {
        if (i == 5) {
            break;
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   KR_FOR             for
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   KR_IF              if
     16   OP_EQ              ==
     17   BROJ               5
     18   KR_BREAK           break
     19   D_VIT_ZAGRADA      }
     20   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_FOR                 3       8
L_ZAGRADA              3       2
IDN                    3       6
OP_PRIDRUZI            3       9
BROJ                   3       10
TOCKAZAREZ             3       7
IDN                    3       6
OP_LT                  3       11
BROJ                   3       12
TOCKAZAREZ             3       7
IDN                    3       6
OP_PRIDRUZI            3       9
IDN                    3       6
PLUS                   3       13
BROJ                   3       14
D_ZAGRADA              3       4
L_VIT_ZAGRADA          3       5
KR_IF                  4       15
L_ZAGRADA              4       2
IDN                    4       6
OP_EQ                  4       16
BROJ                   4       17
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_BREAK               5       18
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       19
D_VIT_ZAGRADA          7       19
KR_RETURN              8       20
IDN                    8       6
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       19
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 5
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 5
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (3,for)
                                L_ZAGRADA (3,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                        OP_LT (3,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,10) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (3,i) [symbol=i]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                            PLUS (3,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,1) [type=int]
                                D_ZAGRADA (3,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (3,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (4,if)
                                                    L_ZAGRADA (4,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (4,i) [symbol=i]
                                                                                    OP_EQ (4,==)
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (4,5) [type=int]
                                                    D_ZAGRADA (4,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (4,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_BREAK (5,break)
                                                                        TOCKAZAREZ (5,;)
                                                            D_VIT_ZAGRADA (6,})
                                        D_VIT_ZAGRADA (7,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,i) [symbol=i]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program24.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    for (i = 0; i < 10; i = i + 1) {
        if (i % 2 == 0) {
            continue;
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   KR_FOR             for
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   KR_IF              if
     16   OP_MOD             %
     17   BROJ               2
     18   OP_EQ              ==
     19   KR_CONTINUE        continue
     20   D_VIT_ZAGRADA      }
     21   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_FOR                 3       8
L_ZAGRADA              3       2
IDN                    3       6
OP_PRIDRUZI            3       9
BROJ                   3       10
TOCKAZAREZ             3       7
IDN                    3       6
OP_LT                  3       11
BROJ                   3       12
TOCKAZAREZ             3       7
IDN                    3       6
OP_PRIDRUZI            3       9
IDN                    3       6
PLUS                   3       13
BROJ                   3       14
D_ZAGRADA              3       4
L_VIT_ZAGRADA          3       5
KR_IF                  4       15
L_ZAGRADA              4       2
IDN                    4       6
OP_MOD                 4       16
BROJ                   4       17
OP_EQ                  4       18
BROJ                   4       10
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_CONTINUE            5       19
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       20
D_VIT_ZAGRADA          7       20
KR_RETURN              8       21
IDN                    8       6
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       20
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                    OP_MOD , %
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 0
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_CONTINUE , continue
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                    OP_MOD , %
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 0
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_CONTINUE , continue
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (3,for)
                                L_ZAGRADA (3,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                        OP_LT (3,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,10) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (3,i) [symbol=i]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                            PLUS (3,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,1) [type=int]
                                D_ZAGRADA (3,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (3,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (4,if)
                                                    L_ZAGRADA (4,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (4,i) [symbol=i]
                                                                                                    OP_MOD (4,%)
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (4,2) [type=int]
                                                                                    OP_EQ (4,==)
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (4,0) [type=int]
                                                    D_ZAGRADA (4,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (4,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_CONTINUE (5,continue)
                                                                        TOCKAZAREZ (5,;)
                                                            D_VIT_ZAGRADA (6,})
                                        D_VIT_ZAGRADA (7,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,i) [symbol=i]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program25.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int add(int a, int b) {
    return a + b;
}

int main(void) {
    int result;
    result = add(5, 3);
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                add
     2   L_ZAGRADA          (
     3   IDN                a
     4   ZAREZ              ,
     5   IDN                b
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_RETURN          return
     9   PLUS               +
     10   TOCKAZAREZ         ;
     11   D_VIT_ZAGRADA      }
     12   IDN                main
     13   KR_VOID            void
     14   IDN                result
     15   OP_PRIDRUZI        =
     16   BROJ               5
     17   BROJ               3

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_RETURN              2       8
IDN                    2       3
PLUS                   2       9
IDN                    2       5
TOCKAZAREZ             2       10
D_VIT_ZAGRADA          3       11
KR_INT                 5       0
IDN                    5       12
L_ZAGRADA              5       2
KR_VOID                5       13
D_ZAGRADA              5       6
L_VIT_ZAGRADA          5       7
KR_INT                 6       0
IDN                    6       14
TOCKAZAREZ             6       10
IDN                    7       14
OP_PRIDRUZI            7       15
IDN                    7       1
L_ZAGRADA              7       2
BROJ                   7       16
ZAREZ                  7       4
BROJ                   7       17
D_ZAGRADA              7       6
TOCKAZAREZ             7       10
KR_RETURN              8       8
IDN                    8       14
TOCKAZAREZ             8       10
D_VIT_ZAGRADA          9       11
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , add
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , a
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , b
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , add
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 5
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 3
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , add
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , a
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , b
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , add
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 5
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 3
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  add : INT (INT, INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT

  Nested Scope 2:
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=add, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=add, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=add, elements=0]
                            IDN (1,add) [symbol=add]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=a, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            IDN (1,a) [symbol=a]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=b, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        IDN (1,b) [symbol=b]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,a) [symbol=a]
                                                                        PLUS (2,+)
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (2,b) [symbol=b]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (6,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (6,result) [symbol=result]
                        TOCKAZAREZ (6,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,result) [symbol=result]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                    IDN (7,add) [symbol=add]
                                                                                            L_ZAGRADA (7,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            BROJ (7,5) [type=int]
                                                                                                ZAREZ (7,,)
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (7,3) [type=int]
                                                                                            D_ZAGRADA (7,))
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,result) [symbol=result]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_ADD                           ; Function add
; Parameter a at (R7+8)
; Parameter b at (R7+12)
; Compound statement
        LOAD R0, (R7+8)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from add

F_MAIN                          ; Function main
; Local variable result at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; Function call: add
        MOVE 3, R0              ; load constant 3
        PUSH R0                 ; push argument 2
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 1
        CALL F_ADD              ; call add
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        STORE R0, (R7-4)        ; assign to result
        LOAD R0, (R7-4)         ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program26.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int multiply(int x, int y) {
    return x * y;
}

int main(void) {
    int a;
    int b;
    int product;
    a = 7;
    b = 6;
    product = multiply(a, b);
    return product;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                multiply
     2   L_ZAGRADA          (
     3   IDN                x
     4   ZAREZ              ,
     5   IDN                y
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_RETURN          return
     9   ASTERISK           *
     10   TOCKAZAREZ         ;
     11   D_VIT_ZAGRADA      }
     12   IDN                main
     13   KR_VOID            void
     14   IDN                a
     15   IDN                b
     16   IDN                product
     17   OP_PRIDRUZI        =
     18   BROJ               7
     19   BROJ               6

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_RETURN              2       8
IDN                    2       3
ASTERISK               2       9
IDN                    2       5
TOCKAZAREZ             2       10
D_VIT_ZAGRADA          3       11
KR_INT                 5       0
IDN                    5       12
L_ZAGRADA              5       2
KR_VOID                5       13
D_ZAGRADA              5       6
L_VIT_ZAGRADA          5       7
KR_INT                 6       0
IDN                    6       14
TOCKAZAREZ             6       10
KR_INT                 7       0
IDN                    7       15
TOCKAZAREZ             7       10
KR_INT                 8       0
IDN                    8       16
TOCKAZAREZ             8       10
IDN                    9       14
OP_PRIDRUZI            9       17
BROJ                   9       18
TOCKAZAREZ             9       10
IDN                   10       15
OP_PRIDRUZI           10       17
BROJ                  10       19
TOCKAZAREZ            10       10
IDN                   11       16
OP_PRIDRUZI           11       17
IDN                   11       1
L_ZAGRADA             11       2
IDN                   11       14
ZAREZ                 11       4
IDN                   11       15
D_ZAGRADA             11       6
TOCKAZAREZ            11       10
KR_RETURN             12       8
IDN                   12       16
TOCKAZAREZ            12       10
D_VIT_ZAGRADA         13       11
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , multiply
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , y
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , product
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 7
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 6
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , product
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , multiply
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , a
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , b
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , product
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , multiply
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , y
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , product
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 7
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 6
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , product
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , multiply
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , a
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , b
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , product
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  multiply : INT (INT, INT) [defined]

  Nested Scope 1:
    x : INT
    y : INT

  Nested Scope 2:
    a : INT
    b : INT
    product : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=multiply, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=multiply, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=multiply, elements=0]
                            IDN (1,multiply) [symbol=multiply]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (1,x) [symbol=x]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=y, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (1,y) [symbol=y]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,x) [symbol=x]
                                                                            ASTERISK (2,*)
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (2,y) [symbol=y]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (6,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                IDN (6,a) [symbol=a]
                                TOCKAZAREZ (6,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (7,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            IDN (7,b) [symbol=b]
                            TOCKAZAREZ (7,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (8,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=product, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=product, elements=0]
                                        IDN (8,product) [symbol=product]
                        TOCKAZAREZ (8,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (9,a) [symbol=a]
                                                OP_PRIDRUZI (9,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (9,7) [type=int]
                                        TOCKAZAREZ (9,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (10,b) [symbol=b]
                                            OP_PRIDRUZI (10,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (10,6) [type=int]
                                    TOCKAZAREZ (10,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (11,product) [symbol=product]
                                        OP_PRIDRUZI (11,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                    IDN (11,multiply) [symbol=multiply]
                                                                                            L_ZAGRADA (11,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            IDN (11,a) [symbol=a]
                                                                                                ZAREZ (11,,)
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (11,b) [symbol=b]
                                                                                            D_ZAGRADA (11,))
                                TOCKAZAREZ (11,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (12,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (12,product) [symbol=product]
                            TOCKAZAREZ (12,;)
                D_VIT_ZAGRADA (13,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MULTIPLY                      ; Function multiply
; Parameter x at (R7+8)
; Parameter y at (R7+12)
; Compound statement
        LOAD R0, (R7+8)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from multiply

F_MAIN                          ; Function main
; Local variable a at (R7-4)
; Local variable b at (R7-8)
; Local variable product at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 7, R0              ; load constant 7
        STORE R0, (R7-4)        ; assign to a
        MOVE 6, R0              ; load constant 6
        STORE R0, (R7-8)        ; assign to b
; Function call: multiply
        LOAD R0, (R7-8)         ; load variable b
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable a
        PUSH R0                 ; push argument 1
        CALL F_MULTIPLY         ; call multiply
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        STORE R0, (R7-12)       ; assign to product
        LOAD R0, (R7-12)        ; load variable product
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program27.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
void print_hello(void) {
    return;
}

int main(void) {
    print_hello();
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_VOID            void
     1   IDN                print_hello
     2   L_ZAGRADA          (
     3   D_ZAGRADA          )
     4   L_VIT_ZAGRADA      {
     5   KR_RETURN          return
     6   TOCKAZAREZ         ;
     7   D_VIT_ZAGRADA      }
     8   KR_INT             int
     9   IDN                main
     10   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_VOID                1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       0
D_ZAGRADA              1       3
L_VIT_ZAGRADA          1       4
KR_RETURN              2       5
TOCKAZAREZ             2       6
D_VIT_ZAGRADA          3       7
KR_INT                 5       8
IDN                    5       9
L_ZAGRADA              5       2
KR_VOID                5       0
D_ZAGRADA              5       3
L_VIT_ZAGRADA          5       4
IDN                    6       1
L_ZAGRADA              6       2
D_ZAGRADA              6       3
TOCKAZAREZ             6       6
KR_RETURN              7       5
BROJ                   7       10
TOCKAZAREZ             7       6
D_VIT_ZAGRADA          8       7
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_VOID , void
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , print_hello
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_VOID , void
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , print_hello
                                                                                        L_ZAGRADA , (
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_VOID , void
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , print_hello
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_VOID , void
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , print_hello
                                                                                        L_ZAGRADA , (
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  print_hello : VOID () [defined]

  Nested Scope 1:
    (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                        KR_VOID (1,void)
                <<deklarator>> [type=VOID(), lvalue=false, id=print_hello, elements=0]
                    <<izravni_deklarator>> [type=VOID(), lvalue=false, id=print_hello, elements=0]
                        <<izravni_deklarator>> [type=VOID, lvalue=true, id=print_hello, elements=0]
                            IDN (1,print_hello) [symbol=print_hello]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                        KR_VOID (1,void)
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=VOID, lvalue=false, elements=0]
                                <<izraz>> [type=VOID, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=VOID, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=VOID, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=VOID, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=VOID, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=VOID, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=VOID, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=VOID, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=VOID(), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=VOID(), lvalue=false, elements=0]
                                                                                                IDN (6,print_hello) [symbol=print_hello]
                                                                                        L_ZAGRADA (6,()
                                                                                        D_ZAGRADA (6,))
                                TOCKAZAREZ (6,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_PRINT_HELLO                   ; Function print_hello
; Compound statement
        MOVE 0, R6              ; void return
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from print_hello

F_MAIN                          ; Function main
; Compound statement
; Function call: print_hello
        CALL F_PRINT_HELLO      ; call print_hello
        MOVE R6, R0             ; function result
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program28.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int square(int x) {
    return x * x;
}

int main(void) {
    int n;
    int result;
    n = 5;
    result = square(n);
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                square
     2   L_ZAGRADA          (
     3   IDN                x
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_RETURN          return
     7   ASTERISK           *
     8   TOCKAZAREZ         ;
     9   D_VIT_ZAGRADA      }
     10   IDN                main
     11   KR_VOID            void
     12   IDN                n
     13   IDN                result
     14   OP_PRIDRUZI        =
     15   BROJ               5

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_RETURN              2       6
IDN                    2       3
ASTERISK               2       7
IDN                    2       3
TOCKAZAREZ             2       8
D_VIT_ZAGRADA          3       9
KR_INT                 5       0
IDN                    5       10
L_ZAGRADA              5       2
KR_VOID                5       11
D_ZAGRADA              5       4
L_VIT_ZAGRADA          5       5
KR_INT                 6       0
IDN                    6       12
TOCKAZAREZ             6       8
KR_INT                 7       0
IDN                    7       13
TOCKAZAREZ             7       8
IDN                    8       12
OP_PRIDRUZI            8       14
BROJ                   8       15
TOCKAZAREZ             8       8
IDN                    9       13
OP_PRIDRUZI            9       14
IDN                    9       1
L_ZAGRADA              9       2
IDN                    9       12
D_ZAGRADA              9       4
TOCKAZAREZ             9       8
KR_RETURN             10       6
IDN                   10       13
TOCKAZAREZ            10       8
D_VIT_ZAGRADA         11       9
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , square
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , n
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , n
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , square
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , square
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , n
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , n
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , square
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  square : INT (INT) [defined]

  Nested Scope 1:
    x : INT

  Nested Scope 2:
    n : INT
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=square, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=square, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=square, elements=0]
                            IDN (1,square) [symbol=square]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=x, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (1,x) [symbol=x]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,x) [symbol=x]
                                                                            ASTERISK (2,*)
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (2,x) [symbol=x]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (6,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                            IDN (6,n) [symbol=n]
                            TOCKAZAREZ (6,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (7,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (7,result) [symbol=result]
                        TOCKAZAREZ (7,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (8,n) [symbol=n]
                                            OP_PRIDRUZI (8,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (8,5) [type=int]
                                    TOCKAZAREZ (8,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (9,result) [symbol=result]
                                        OP_PRIDRUZI (9,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                    IDN (9,square) [symbol=square]
                                                                                            L_ZAGRADA (9,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (9,n) [symbol=n]
                                                                                            D_ZAGRADA (9,))
                                TOCKAZAREZ (9,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (10,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (10,result) [symbol=result]
                            TOCKAZAREZ (10,;)
                D_VIT_ZAGRADA (11,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_SQUARE                        ; Function square
; Parameter x at (R7+8)
; Compound statement
        LOAD R0, (R7+8)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7+8)         ; load variable x
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from square

F_MAIN                          ; Function main
; Local variable n at (R7-4)
; Local variable result at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to n
; Function call: square
        LOAD R0, (R7-4)         ; load variable n
        PUSH R0                 ; push argument 1
        CALL F_SQUARE           ; call square
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        STORE R0, (R7-8)        ; assign to result
        LOAD R0, (R7-8)         ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program29.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int max(int a, int b) {
    if (a > b) {
        return a;
    } else {
        return b;
    }
}

int main(void) {
    int x;
    int y;
    int m;
    x = 10;
    y = 20;
    m = max(x, y);
    return m;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                max
     2   L_ZAGRADA          (
     3   IDN                a
     4   ZAREZ              ,
     5   IDN                b
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_IF              if
     9   OP_GT              >
     10   KR_RETURN          return
     11   TOCKAZAREZ         ;
     12   D_VIT_ZAGRADA      }
     13   KR_ELSE            else
     14   IDN                main
     15   KR_VOID            void
     16   IDN                x
     17   IDN                y
     18   IDN                m
     19   OP_PRIDRUZI        =
     20   BROJ               10
     21   BROJ               20

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_IF                  2       8
L_ZAGRADA              2       2
IDN                    2       3
OP_GT                  2       9
IDN                    2       5
D_ZAGRADA              2       6
L_VIT_ZAGRADA          2       7
KR_RETURN              3       10
IDN                    3       3
TOCKAZAREZ             3       11
D_VIT_ZAGRADA          4       12
KR_ELSE                4       13
L_VIT_ZAGRADA          4       7
KR_RETURN              5       10
IDN                    5       5
TOCKAZAREZ             5       11
D_VIT_ZAGRADA          6       12
D_VIT_ZAGRADA          7       12
KR_INT                 9       0
IDN                    9       14
L_ZAGRADA              9       2
KR_VOID                9       15
D_ZAGRADA              9       6
L_VIT_ZAGRADA          9       7
KR_INT                10       0
IDN                   10       16
TOCKAZAREZ            10       11
KR_INT                11       0
IDN                   11       17
TOCKAZAREZ            11       11
KR_INT                12       0
IDN                   12       18
TOCKAZAREZ            12       11
IDN                   13       16
OP_PRIDRUZI           13       19
BROJ                  13       20
TOCKAZAREZ            13       11
IDN                   14       17
OP_PRIDRUZI           14       19
BROJ                  14       21
TOCKAZAREZ            14       11
IDN                   15       18
OP_PRIDRUZI           15       19
IDN                   15       1
L_ZAGRADA             15       2
IDN                   15       16
ZAREZ                 15       4
IDN                   15       17
D_ZAGRADA             15       6
TOCKAZAREZ            15       11
KR_RETURN             16       10
IDN                   16       18
TOCKAZAREZ            16       11
D_VIT_ZAGRADA         17       12
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , max
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , a
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , b
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , a
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                                KR_ELSE , else
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , b
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , m
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 10
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 20
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , m
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , max
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , x
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , y
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , m
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , max
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , a
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , b
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , a
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                                KR_ELSE , else
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , b
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , m
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 10
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 20
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , m
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , max
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , x
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , y
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , m
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  max : INT (INT, INT) [defined]

  Nested Scope 1:
    a : INT
    b : INT

    Nested Scope 1:
      (no symbols)

    Nested Scope 2:
      (no symbols)

  Nested Scope 2:
    m : INT
    x : INT
    y : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=max, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=max, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=max, elements=0]
                            IDN (1,max) [symbol=max]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=a, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            IDN (1,a) [symbol=a]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=b, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        IDN (1,b) [symbol=b]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (2,if)
                                L_ZAGRADA (2,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,a) [symbol=a]
                                                                    OP_GT (2,>)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (2,b) [symbol=b]
                                D_ZAGRADA (2,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (2,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (3,return)
                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                IDN (3,a) [symbol=a]
                                                    TOCKAZAREZ (3,;)
                                        D_VIT_ZAGRADA (4,})
                                KR_ELSE (4,else)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                IDN (5,b) [symbol=b]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    D_VIT_ZAGRADA (7,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (9,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (9,main) [symbol=main]
                    L_ZAGRADA (9,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (9,void)
                    D_ZAGRADA (9,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (9,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (10,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                                IDN (10,x) [symbol=x]
                                TOCKAZAREZ (10,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (11,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                            IDN (11,y) [symbol=y]
                            TOCKAZAREZ (11,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (12,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=m, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=m, elements=0]
                                        IDN (12,m) [symbol=m]
                        TOCKAZAREZ (12,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (13,x) [symbol=x]
                                                OP_PRIDRUZI (13,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (13,10) [type=int]
                                        TOCKAZAREZ (13,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (14,y) [symbol=y]
                                            OP_PRIDRUZI (14,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (14,20) [type=int]
                                    TOCKAZAREZ (14,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (15,m) [symbol=m]
                                        OP_PRIDRUZI (15,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                    IDN (15,max) [symbol=max]
                                                                                            L_ZAGRADA (15,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            IDN (15,x) [symbol=x]
                                                                                                ZAREZ (15,,)
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (15,y) [symbol=y]
                                                                                            D_ZAGRADA (15,))
                                TOCKAZAREZ (15,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (16,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (16,m) [symbol=m]
                            TOCKAZAREZ (16,;)
                D_VIT_ZAGRADA (17,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAX                           ; Function max
; Parameter a at (R7+8)
; Parameter b at (R7+12)
; Compound statement
; If-else statement
        LOAD R0, (R7+8)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE1       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_ELSE1           ; if condition is false
; Compound statement
        LOAD R0, (R7+8)         ; load variable a
        MOVE R0, R6             ; return value
        RET                     ; return from function
        JP L_END1               ; skip else
L_ELSE1                         ; else clause
; Compound statement
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if-else
        MOVE 0, R6              ; default return value
        RET                     ; return from max

F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
; Local variable m at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-4)        ; assign to x
        MOVE 20, R0             ; load constant 20
        STORE R0, (R7-8)        ; assign to y
; Function call: max
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; push argument 1
        CALL F_MAX              ; call max
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        STORE R0, (R7-12)       ; assign to m
        LOAD R0, (R7-12)        ; load variable m
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program3.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int a;
    int b;
    int sum;
    a = 10;
    b = 20;
    sum = a + b;
    return sum;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                a
     7   TOCKAZAREZ         ;
     8   IDN                b
     9   IDN                sum
     10   OP_PRIDRUZI        =
     11   BROJ               10
     12   BROJ               20
     13   PLUS               +
     14   KR_RETURN          return
     15   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
IDN                    7       6
PLUS                   7       13
IDN                    7       8
TOCKAZAREZ             7       7
KR_RETURN              8       14
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 10
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 20
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , sum
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 10
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 20
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , sum
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT
    sum : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                IDN (2,a) [symbol=a]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            IDN (3,b) [symbol=b]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                        IDN (4,sum) [symbol=sum]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,a) [symbol=a]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,10) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,b) [symbol=b]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,20) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,sum) [symbol=sum]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,a) [symbol=a]
                                                                            PLUS (7,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (7,b) [symbol=b]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,sum) [symbol=sum]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable a at (R7-4)
; Local variable b at (R7-8)
; Local variable sum at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-4)        ; assign to a
        MOVE 20, R0             ; load constant 20
        STORE R0, (R7-8)        ; assign to b
        LOAD R0, (R7-4)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-12)       ; assign to sum
        LOAD R0, (R7-12)        ; load variable sum
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program30.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int min(int a, int b) {
    if (a < b) {
        return a;
    }
    return b;
}

int main(void) {
    return min(15, 8);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                min
     2   L_ZAGRADA          (
     3   IDN                a
     4   ZAREZ              ,
     5   IDN                b
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_IF              if
     9   OP_LT              <
     10   KR_RETURN          return
     11   TOCKAZAREZ         ;
     12   D_VIT_ZAGRADA      }
     13   IDN                main
     14   KR_VOID            void
     15   BROJ               15
     16   BROJ               8

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_IF                  2       8
L_ZAGRADA              2       2
IDN                    2       3
OP_LT                  2       9
IDN                    2       5
D_ZAGRADA              2       6
L_VIT_ZAGRADA          2       7
KR_RETURN              3       10
IDN                    3       3
TOCKAZAREZ             3       11
D_VIT_ZAGRADA          4       12
KR_RETURN              5       10
IDN                    5       5
TOCKAZAREZ             5       11
D_VIT_ZAGRADA          6       12
KR_INT                 8       0
IDN                    8       13
L_ZAGRADA              8       2
KR_VOID                8       14
D_ZAGRADA              8       6
L_VIT_ZAGRADA          8       7
KR_RETURN              9       10
IDN                    9       1
L_ZAGRADA              9       2
BROJ                   9       15
ZAREZ                  9       4
BROJ                   9       16
D_ZAGRADA              9       6
TOCKAZAREZ             9       11
D_VIT_ZAGRADA         10       12
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , min
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , a
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , b
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , min
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 15
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 8
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , min
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , a
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , b
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , min
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 15
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 8
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  min : INT (INT, INT) [defined]

  Nested Scope 1:
    a : INT
    b : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=min, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=min, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=min, elements=0]
                            IDN (1,min) [symbol=min]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=a, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            IDN (1,a) [symbol=a]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=b, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        IDN (1,b) [symbol=b]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,a) [symbol=a]
                                                                        OP_LT (2,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,b) [symbol=b]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (3,return)
                                                        <<izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (3,a) [symbol=a]
                                                        TOCKAZAREZ (3,;)
                                            D_VIT_ZAGRADA (4,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (5,return)
                                <<izraz>> [type=INT, lvalue=true, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (5,b) [symbol=b]
                                TOCKAZAREZ (5,;)
                    D_VIT_ZAGRADA (6,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (8,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (8,main) [symbol=main]
                    L_ZAGRADA (8,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (8,void)
                    D_ZAGRADA (8,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (8,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                            IDN (9,min) [symbol=min]
                                                                                    L_ZAGRADA (9,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (9,15) [type=int]
                                                                                        ZAREZ (9,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (9,8) [type=int]
                                                                                    D_ZAGRADA (9,))
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MIN                           ; Function min
; Parameter a at (R7+8)
; Parameter b at (R7+12)
; Compound statement
; If statement
        LOAD R0, (R7+8)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        LOAD R0, (R7+8)         ; load variable a
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from min

F_MAIN                          ; Function main
; Compound statement
; Function call: min
        MOVE 8, R0              ; load constant 8
        PUSH R0                 ; push argument 2
        MOVE 15, R0             ; load constant 15
        PUSH R0                 ; push argument 1
        CALL F_MIN              ; call min
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program31.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
char get_char(void) {
    return 'a';
}

int main(void) {
    char c;
    c = get_char();
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_CHAR            char
     1   IDN                get_char
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_RETURN          return
     7   ZNAK               'a'
     8   TOCKAZAREZ         ;
     9   D_VIT_ZAGRADA      }
     10   KR_INT             int
     11   IDN                main
     12   IDN                c
     13   OP_PRIDRUZI        =
     14   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_CHAR                1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_RETURN              2       6
ZNAK                   2       7
TOCKAZAREZ             2       8
D_VIT_ZAGRADA          3       9
KR_INT                 5       10
IDN                    5       11
L_ZAGRADA              5       2
KR_VOID                5       3
D_ZAGRADA              5       4
L_VIT_ZAGRADA          5       5
KR_CHAR                6       0
IDN                    6       12
TOCKAZAREZ             6       8
IDN                    7       12
OP_PRIDRUZI            7       13
IDN                    7       1
L_ZAGRADA              7       2
D_ZAGRADA              7       4
TOCKAZAREZ             7       8
KR_RETURN              8       6
BROJ                   8       14
TOCKAZAREZ             8       8
D_VIT_ZAGRADA          9       9
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_CHAR , char
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , get_char
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_VOID , void
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            ZNAK , 'a'
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_CHAR , char
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , c
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , get_char
                                                                                            L_ZAGRADA , (
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_CHAR , char
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , get_char
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_VOID , void
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            ZNAK , 'a'
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_CHAR , char
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , c
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , get_char
                                                                                            L_ZAGRADA , (
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  get_char : CHAR () [defined]
  main : INT () [defined]

  Nested Scope 1:
    (no symbols)

  Nested Scope 2:
    c : CHAR

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=CHAR, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=CHAR, lvalue=false, elements=0]
                        KR_CHAR (1,char)
                <<deklarator>> [type=CHAR(), lvalue=false, id=get_char, elements=0]
                    <<izravni_deklarator>> [type=CHAR(), lvalue=false, id=get_char, elements=0]
                        <<izravni_deklarator>> [type=CHAR, lvalue=true, id=get_char, elements=0]
                            IDN (1,get_char) [symbol=get_char]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                        KR_VOID (1,void)
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=CHAR, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=CHAR, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                            ZNAK (2,'a') [type=char]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=CHAR, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=CHAR, lvalue=false, elements=0]
                                KR_CHAR (6,char)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=CHAR, lvalue=true, id=c, elements=0]
                                    <<izravni_deklarator>> [type=CHAR, lvalue=true, id=c, elements=0]
                                        IDN (6,c) [symbol=c]
                        TOCKAZAREZ (6,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=CHAR, lvalue=false, elements=0]
                                <<izraz>> [type=CHAR, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=CHAR, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=CHAR, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=CHAR, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=CHAR, lvalue=true, elements=0]
                                                    IDN (7,c) [symbol=c]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=CHAR, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=CHAR(), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=CHAR(), lvalue=false, elements=0]
                                                                                                    IDN (7,get_char) [symbol=get_char]
                                                                                            L_ZAGRADA (7,()
                                                                                            D_ZAGRADA (7,))
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (8,0) [type=int]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_GET_CHAR                      ; Function get_char
; Compound statement
        MOVE 97, R0             ; load char ''a''
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from get_char

F_MAIN                          ; Function main
; Local variable c at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; Function call: get_char
        CALL F_GET_CHAR         ; call get_char
        MOVE R6, R0             ; function result
        STORE R0, (R7-4)        ; assign to c
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program32.c

Lexer: OK Parser: OK Semantic error at line 1 CodeGen: Skipped (semantic failed)
Source Code
float get_float(void) {
    return 3.14;
}

int main(void) {
    float f;
    f = get_float();
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_FLOAT           float
     1   IDN                get_float
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_RETURN          return
     7   BROJ               3.14
     8   TOCKAZAREZ         ;
     9   D_VIT_ZAGRADA      }
     10   KR_INT             int
     11   IDN                main
     12   IDN                f
     13   OP_PRIDRUZI        =
     14   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_FLOAT               1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_RETURN              2       6
BROJ                   2       7
TOCKAZAREZ             2       8
D_VIT_ZAGRADA          3       9
KR_INT                 5       10
IDN                    5       11
L_ZAGRADA              5       2
KR_VOID                5       3
D_ZAGRADA              5       4
L_VIT_ZAGRADA          5       5
KR_FLOAT               6       0
IDN                    6       12
TOCKAZAREZ             6       8
IDN                    7       12
OP_PRIDRUZI            7       13
IDN                    7       1
L_ZAGRADA              7       2
D_ZAGRADA              7       4
TOCKAZAREZ             7       8
KR_RETURN              8       6
BROJ                   8       14
TOCKAZAREZ             8       8
D_VIT_ZAGRADA          9       9
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_FLOAT , float
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , get_float
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_VOID , void
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 3.14
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_FLOAT , float
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , f
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , f
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , get_float
                                                                                            L_ZAGRADA , (
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_FLOAT , float
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , get_float
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_VOID , void
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 3.14
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_FLOAT , float
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , f
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , f
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , get_float
                                                                                            L_ZAGRADA , (
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<specifikator_tipa> ::= KR_FLOAT(1,float)

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program33.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int factorial(int n) {
    if (n <= 1) {
        return 1;
    }
    return n * factorial(n - 1);
}

int main(void) {
    int result;
    result = factorial(5);
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                factorial
     2   L_ZAGRADA          (
     3   IDN                n
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_IF              if
     7   OP_LTE             <=
     8   BROJ               1
     9   KR_RETURN          return
     10   TOCKAZAREZ         ;
     11   D_VIT_ZAGRADA      }
     12   ASTERISK           *
     13   MINUS              -
     14   IDN                main
     15   KR_VOID            void
     16   IDN                result
     17   OP_PRIDRUZI        =
     18   BROJ               5

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_IF                  2       6
L_ZAGRADA              2       2
IDN                    2       3
OP_LTE                 2       7
BROJ                   2       8
D_ZAGRADA              2       4
L_VIT_ZAGRADA          2       5
KR_RETURN              3       9
BROJ                   3       8
TOCKAZAREZ             3       10
D_VIT_ZAGRADA          4       11
KR_RETURN              5       9
IDN                    5       3
ASTERISK               5       12
IDN                    5       1
L_ZAGRADA              5       2
IDN                    5       3
MINUS                  5       13
BROJ                   5       8
D_ZAGRADA              5       4
TOCKAZAREZ             5       10
D_VIT_ZAGRADA          6       11
KR_INT                 8       0
IDN                    8       14
L_ZAGRADA              8       2
KR_VOID                8       15
D_ZAGRADA              8       4
L_VIT_ZAGRADA          8       5
KR_INT                 9       0
IDN                    9       16
TOCKAZAREZ             9       10
IDN                   10       16
OP_PRIDRUZI           10       17
IDN                   10       1
L_ZAGRADA             10       2
BROJ                  10       18
D_ZAGRADA             10       4
TOCKAZAREZ            10       10
KR_RETURN             11       9
IDN                   11       16
TOCKAZAREZ            11       10
D_VIT_ZAGRADA         12       11
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , factorial
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , n
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , factorial
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 1
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , factorial
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 5
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , factorial
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , n
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , factorial
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 1
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , factorial
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 5
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  factorial : INT (INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    n : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=factorial, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=factorial, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=factorial, elements=0]
                            IDN (1,factorial) [symbol=factorial]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,n) [symbol=n]
                                                                        OP_LTE (2,<=)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,1) [type=int]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (3,return)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (3,1) [type=int]
                                                        TOCKAZAREZ (3,;)
                                            D_VIT_ZAGRADA (4,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (5,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (5,n) [symbol=n]
                                                                            ASTERISK (5,*)
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                IDN (5,factorial) [symbol=factorial]
                                                                                        L_ZAGRADA (5,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,n) [symbol=n]
                                                                                                                                MINUS (5,-)
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (5,1) [type=int]
                                                                                        D_ZAGRADA (5,))
                                TOCKAZAREZ (5,;)
                    D_VIT_ZAGRADA (6,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (8,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (8,main) [symbol=main]
                    L_ZAGRADA (8,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (8,void)
                    D_ZAGRADA (8,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (8,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (9,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (9,result) [symbol=result]
                        TOCKAZAREZ (9,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (10,result) [symbol=result]
                                        OP_PRIDRUZI (10,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                    IDN (10,factorial) [symbol=factorial]
                                                                                            L_ZAGRADA (10,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (10,5) [type=int]
                                                                                            D_ZAGRADA (10,))
                                TOCKAZAREZ (10,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (11,result) [symbol=result]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_FACTORIAL                     ; Function factorial
; Parameter n at (R7+8)
; Compound statement
; If statement
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLE L_SC_TRUE1       ; comparison OP_LTE
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
; Function call: factorial
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        PUSH R0                 ; push argument 1
        CALL F_FACTORIAL        ; call factorial
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from factorial

F_MAIN                          ; Function main
; Local variable result at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; Function call: factorial
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 1
        CALL F_FACTORIAL        ; call factorial
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        STORE R0, (R7-4)        ; assign to result
        LOAD R0, (R7-4)         ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program34.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int fibonacci(int n) {
    if (n <= 1) {
        return n;
    }
    return fibonacci(n - 1) + fibonacci(n - 2);
}

int main(void) {
    int result;
    result = fibonacci(6);
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                fibonacci
     2   L_ZAGRADA          (
     3   IDN                n
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_IF              if
     7   OP_LTE             <=
     8   BROJ               1
     9   KR_RETURN          return
     10   TOCKAZAREZ         ;
     11   D_VIT_ZAGRADA      }
     12   MINUS              -
     13   PLUS               +
     14   BROJ               2
     15   IDN                main
     16   KR_VOID            void
     17   IDN                result
     18   OP_PRIDRUZI        =
     19   BROJ               6

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_IF                  2       6
L_ZAGRADA              2       2
IDN                    2       3
OP_LTE                 2       7
BROJ                   2       8
D_ZAGRADA              2       4
L_VIT_ZAGRADA          2       5
KR_RETURN              3       9
IDN                    3       3
TOCKAZAREZ             3       10
D_VIT_ZAGRADA          4       11
KR_RETURN              5       9
IDN                    5       1
L_ZAGRADA              5       2
IDN                    5       3
MINUS                  5       12
BROJ                   5       8
D_ZAGRADA              5       4
PLUS                   5       13
IDN                    5       1
L_ZAGRADA              5       2
IDN                    5       3
MINUS                  5       12
BROJ                   5       14
D_ZAGRADA              5       4
TOCKAZAREZ             5       10
D_VIT_ZAGRADA          6       11
KR_INT                 8       0
IDN                    8       15
L_ZAGRADA              8       2
KR_VOID                8       16
D_ZAGRADA              8       4
L_VIT_ZAGRADA          8       5
KR_INT                 9       0
IDN                    9       17
TOCKAZAREZ             9       10
IDN                   10       17
OP_PRIDRUZI           10       18
IDN                   10       1
L_ZAGRADA             10       2
BROJ                  10       19
D_ZAGRADA             10       4
TOCKAZAREZ            10       10
KR_RETURN             11       9
IDN                   11       17
TOCKAZAREZ            11       10
D_VIT_ZAGRADA         12       11
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , fibonacci
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , n
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , fibonacci
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , n
                                                                                                                                    MINUS , -
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 1
                                                                                            D_ZAGRADA , )
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , fibonacci
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 2
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , fibonacci
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 6
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , fibonacci
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , n
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , fibonacci
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , n
                                                                                                                                    MINUS , -
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 1
                                                                                            D_ZAGRADA , )
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , fibonacci
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 2
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , fibonacci
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 6
                                                                                            D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  fibonacci : INT (INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    n : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=fibonacci, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=fibonacci, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=fibonacci, elements=0]
                            IDN (1,fibonacci) [symbol=fibonacci]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,n) [symbol=n]
                                                                        OP_LTE (2,<=)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,1) [type=int]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (3,return)
                                                        <<izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (3,n) [symbol=n]
                                                        TOCKAZAREZ (3,;)
                                            D_VIT_ZAGRADA (4,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (5,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                    IDN (5,fibonacci) [symbol=fibonacci]
                                                                                            L_ZAGRADA (5,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            IDN (5,n) [symbol=n]
                                                                                                                                    MINUS (5,-)
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (5,1) [type=int]
                                                                                            D_ZAGRADA (5,))
                                                                        PLUS (5,+)
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                IDN (5,fibonacci) [symbol=fibonacci]
                                                                                        L_ZAGRADA (5,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,n) [symbol=n]
                                                                                                                                MINUS (5,-)
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (5,2) [type=int]
                                                                                        D_ZAGRADA (5,))
                                TOCKAZAREZ (5,;)
                    D_VIT_ZAGRADA (6,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (8,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (8,main) [symbol=main]
                    L_ZAGRADA (8,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (8,void)
                    D_ZAGRADA (8,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (8,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (9,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (9,result) [symbol=result]
                        TOCKAZAREZ (9,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (10,result) [symbol=result]
                                        OP_PRIDRUZI (10,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                    IDN (10,fibonacci) [symbol=fibonacci]
                                                                                            L_ZAGRADA (10,()
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (10,6) [type=int]
                                                                                            D_ZAGRADA (10,))
                                TOCKAZAREZ (10,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (11,result) [symbol=result]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_FIBONACCI                     ; Function fibonacci
; Parameter n at (R7+8)
; Compound statement
; If statement
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLE L_SC_TRUE1       ; comparison OP_LTE
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        LOAD R0, (R7+8)         ; load variable n
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
; Function call: fibonacci
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        PUSH R0                 ; push argument 1
        CALL F_FIBONACCI        ; call fibonacci
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        PUSH R0                 ; save left operand
; Function call: fibonacci
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        PUSH R0                 ; push argument 1
        CALL F_FIBONACCI        ; call fibonacci
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from fibonacci

F_MAIN                          ; Function main
; Local variable result at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; Function call: fibonacci
        MOVE 6, R0              ; load constant 6
        PUSH R0                 ; push argument 1
        CALL F_FIBONACCI        ; call fibonacci
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        STORE R0, (R7-4)        ; assign to result
        LOAD R0, (R7-4)         ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program35.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int sum_array(int arr[], int n) {
    int i;
    int sum;
    sum = 0;
    for (i = 0; i < n; i = i + 1) {
        sum = sum + arr[i];
    }
    return sum;
}

int main(void) {
    int arr[5];
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    arr[3] = 4;
    arr[4] = 5;
    return sum_array(arr, 5);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                sum_array
     2   L_ZAGRADA          (
     3   IDN                arr
     4   L_UGL_ZAGRADA      [
     5   D_UGL_ZAGRADA      ]
     6   ZAREZ              ,
     7   IDN                n
     8   D_ZAGRADA          )
     9   L_VIT_ZAGRADA      {
     10   IDN                i
     11   TOCKAZAREZ         ;
     12   IDN                sum
     13   OP_PRIDRUZI        =
     14   BROJ               0
     15   KR_FOR             for
     16   OP_LT              <
     17   PLUS               +
     18   BROJ               1
     19   D_VIT_ZAGRADA      }
     20   KR_RETURN          return
     21   IDN                main
     22   KR_VOID            void
     23   BROJ               5
     24   BROJ               2
     25   BROJ               3
     26   BROJ               4

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
L_UGL_ZAGRADA          1       4
D_UGL_ZAGRADA          1       5
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       7
D_ZAGRADA              1       8
L_VIT_ZAGRADA          1       9
KR_INT                 2       0
IDN                    2       10
TOCKAZAREZ             2       11
KR_INT                 3       0
IDN                    3       12
TOCKAZAREZ             3       11
IDN                    4       12
OP_PRIDRUZI            4       13
BROJ                   4       14
TOCKAZAREZ             4       11
KR_FOR                 5       15
L_ZAGRADA              5       2
IDN                    5       10
OP_PRIDRUZI            5       13
BROJ                   5       14
TOCKAZAREZ             5       11
IDN                    5       10
OP_LT                  5       16
IDN                    5       7
TOCKAZAREZ             5       11
IDN                    5       10
OP_PRIDRUZI            5       13
IDN                    5       10
PLUS                   5       17
BROJ                   5       18
D_ZAGRADA              5       8
L_VIT_ZAGRADA          5       9
IDN                    6       12
OP_PRIDRUZI            6       13
IDN                    6       12
PLUS                   6       17
IDN                    6       3
L_UGL_ZAGRADA          6       4
IDN                    6       10
D_UGL_ZAGRADA          6       5
TOCKAZAREZ             6       11
D_VIT_ZAGRADA          7       19
KR_RETURN              8       20
IDN                    8       12
TOCKAZAREZ             8       11
D_VIT_ZAGRADA          9       19
KR_INT                11       0
IDN                   11       21
L_ZAGRADA             11       2
KR_VOID               11       22
D_ZAGRADA             11       8
L_VIT_ZAGRADA         11       9
KR_INT                12       0
IDN                   12       3
L_UGL_ZAGRADA         12       4
BROJ                  12       23
D_UGL_ZAGRADA         12       5
TOCKAZAREZ            12       11
IDN                   13       3
L_UGL_ZAGRADA         13       4
BROJ                  13       14
D_UGL_ZAGRADA         13       5
OP_PRIDRUZI           13       13
BROJ                  13       18
TOCKAZAREZ            13       11
IDN                   14       3
L_UGL_ZAGRADA         14       4
BROJ                  14       18
D_UGL_ZAGRADA         14       5
OP_PRIDRUZI           14       13
BROJ                  14       24
TOCKAZAREZ            14       11
IDN                   15       3
L_UGL_ZAGRADA         15       4
BROJ                  15       24
D_UGL_ZAGRADA         15       5
OP_PRIDRUZI           15       13
BROJ                  15       25
TOCKAZAREZ            15       11
IDN                   16       3
L_UGL_ZAGRADA         16       4
BROJ                  16       25
D_UGL_ZAGRADA         16       5
OP_PRIDRUZI           16       13
BROJ                  16       26
TOCKAZAREZ            16       11
IDN                   17       3
L_UGL_ZAGRADA         17       4
BROJ                  17       26
D_UGL_ZAGRADA         17       5
OP_PRIDRUZI           17       13
BROJ                  17       23
TOCKAZAREZ            17       11
KR_RETURN             18       20
IDN                   18       1
L_ZAGRADA             18       2
IDN                   18       3
ZAREZ                 18       6
BROJ                  18       23
D_ZAGRADA             18       8
TOCKAZAREZ            18       11
D_VIT_ZAGRADA         19       19
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , sum_array
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            D_UGL_ZAGRADA , ]
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , i
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , sum
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , sum
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , sum
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , sum
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , arr
                                                                                                                    L_UGL_ZAGRADA , [
                                                                                                                    <izraz>
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , i
                                                                                                                    D_UGL_ZAGRADA , ]
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 3
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum_array
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , arr
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , sum_array
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            D_UGL_ZAGRADA , ]
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , i
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , sum
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , sum
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , sum
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , sum
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , arr
                                                                                                                    L_UGL_ZAGRADA , [
                                                                                                                    <izraz>
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , i
                                                                                                                    D_UGL_ZAGRADA , ]
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 3
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum_array
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , arr
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  sum_array : INT (array(INT), INT) [defined]

  Nested Scope 1:
    arr : array(INT)
    i : INT
    n : INT
    sum : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    arr : array(INT)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(array(INT), INT), lvalue=false, id=sum_array, elements=0]
                    <<izravni_deklarator>> [type=INT(array(INT), INT), lvalue=false, id=sum_array, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=sum_array, elements=0]
                            IDN (1,sum_array) [symbol=sum_array]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                        <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                                IDN (1,arr) [symbol=arr]
                                            L_UGL_ZAGRADA (1,[)
                                            D_UGL_ZAGRADA (1,])
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                                IDN (2,i) [symbol=i]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                            IDN (3,sum) [symbol=sum]
                            TOCKAZAREZ (3,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,sum) [symbol=sum]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,0) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_petlje>> [lvalue=false, elements=0]
                                    KR_FOR (5,for)
                                    L_ZAGRADA (5,()
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,i) [symbol=i]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,0) [type=int]
                                        TOCKAZAREZ (5,;)
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (5,i) [symbol=i]
                                                                            OP_LT (5,<)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (5,n) [symbol=n]
                                        TOCKAZAREZ (5,;)
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,i) [symbol=i]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (5,i) [symbol=i]
                                                                                PLUS (5,+)
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,1) [type=int]
                                    D_ZAGRADA (5,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (5,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (6,sum) [symbol=sum]
                                                                OP_PRIDRUZI (6,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (6,sum) [symbol=sum]
                                                                                                    PLUS (6,+)
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            IDN (6,arr) [symbol=arr]
                                                                                                                    L_UGL_ZAGRADA (6,[)
                                                                                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                IDN (6,i) [symbol=i]
                                                                                                                    D_UGL_ZAGRADA (6,])
                                                        TOCKAZAREZ (6,;)
                                            D_VIT_ZAGRADA (7,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (8,return)
                                <<izraz>> [type=INT, lvalue=true, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (8,sum) [symbol=sum]
                                TOCKAZAREZ (8,;)
                    D_VIT_ZAGRADA (9,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (11,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (11,main) [symbol=main]
                    L_ZAGRADA (11,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (11,void)
                    D_ZAGRADA (11,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (11,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (12,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                    <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                            IDN (12,arr) [symbol=arr]
                                        L_UGL_ZAGRADA (12,[)
                                        <<log_ili_izraz>> [lvalue=false, elements=0]
                                            <<log_i_izraz>> [lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [lvalue=false, elements=0]
                                                                            <<cast_izraz>> [lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [lvalue=false, elements=0]
                                                                                            BROJ (12,5) [type=int]
                                        D_UGL_ZAGRADA (12,])
                        TOCKAZAREZ (12,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<lista_naredbi>> [lvalue=false, elements=0]
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                        IDN (13,arr) [symbol=arr]
                                                                L_UGL_ZAGRADA (13,[)
                                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (13,0) [type=int]
                                                                D_UGL_ZAGRADA (13,])
                                                        OP_PRIDRUZI (13,=)
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (13,1) [type=int]
                                                TOCKAZAREZ (13,;)
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    IDN (14,arr) [symbol=arr]
                                                            L_UGL_ZAGRADA (14,[)
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (14,1) [type=int]
                                                            D_UGL_ZAGRADA (14,])
                                                    OP_PRIDRUZI (14,=)
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (14,2) [type=int]
                                            TOCKAZAREZ (14,;)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                IDN (15,arr) [symbol=arr]
                                                        L_UGL_ZAGRADA (15,[)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (15,2) [type=int]
                                                        D_UGL_ZAGRADA (15,])
                                                OP_PRIDRUZI (15,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (15,3) [type=int]
                                        TOCKAZAREZ (15,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            IDN (16,arr) [symbol=arr]
                                                    L_UGL_ZAGRADA (16,[)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (16,3) [type=int]
                                                    D_UGL_ZAGRADA (16,])
                                            OP_PRIDRUZI (16,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (16,4) [type=int]
                                    TOCKAZAREZ (16,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        IDN (17,arr) [symbol=arr]
                                                L_UGL_ZAGRADA (17,[)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (17,4) [type=int]
                                                D_UGL_ZAGRADA (17,])
                                        OP_PRIDRUZI (17,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (17,5) [type=int]
                                TOCKAZAREZ (17,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (18,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                            IDN (18,sum_array) [symbol=sum_array]
                                                                                    L_ZAGRADA (18,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    IDN (18,arr) [symbol=arr]
                                                                                        ZAREZ (18,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (18,5) [type=int]
                                                                                    D_ZAGRADA (18,))
                            TOCKAZAREZ (18,;)
                D_VIT_ZAGRADA (19,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_SUM_ARRAY                     ; Function sum_array
; Parameter arr at (R7+8)
; Parameter n at (R7+12)
; Local variable i at (R7-4)
; Local variable sum at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-8)        ; assign to sum
; For loop with increment (TODO)
        LOAD R0, (R7-8)         ; load variable sum
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from sum_array

F_MAIN                          ; Function main
; Local variable arr at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 1, R0              ; load constant 1
        STORE R0, (R7-4)        ; assign to arr
        MOVE 2, R0              ; load constant 2
        STORE R0, (R7-4)        ; assign to arr
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-4)        ; assign to arr
        MOVE 4, R0              ; load constant 4
        STORE R0, (R7-4)        ; assign to arr
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to arr
; Function call: sum_array
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_SUM_ARRAY        ; call sum_array
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program36.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int power(int base, int exp) {
    if (exp == 0) {
        return 1;
    }
    return base * power(base, exp - 1);
}

int main(void) {
    return power(2, 4);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                power
     2   L_ZAGRADA          (
     3   IDN                base
     4   ZAREZ              ,
     5   IDN                exp
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_IF              if
     9   OP_EQ              ==
     10   BROJ               0
     11   KR_RETURN          return
     12   BROJ               1
     13   TOCKAZAREZ         ;
     14   D_VIT_ZAGRADA      }
     15   ASTERISK           *
     16   MINUS              -
     17   IDN                main
     18   KR_VOID            void
     19   BROJ               2
     20   BROJ               4

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_IF                  2       8
L_ZAGRADA              2       2
IDN                    2       5
OP_EQ                  2       9
BROJ                   2       10
D_ZAGRADA              2       6
L_VIT_ZAGRADA          2       7
KR_RETURN              3       11
BROJ                   3       12
TOCKAZAREZ             3       13
D_VIT_ZAGRADA          4       14
KR_RETURN              5       11
IDN                    5       3
ASTERISK               5       15
IDN                    5       1
L_ZAGRADA              5       2
IDN                    5       3
ZAREZ                  5       4
IDN                    5       5
MINUS                  5       16
BROJ                   5       12
D_ZAGRADA              5       6
TOCKAZAREZ             5       13
D_VIT_ZAGRADA          6       14
KR_INT                 8       0
IDN                    8       17
L_ZAGRADA              8       2
KR_VOID                8       18
D_ZAGRADA              8       6
L_VIT_ZAGRADA          8       7
KR_RETURN              9       11
IDN                    9       1
L_ZAGRADA              9       2
BROJ                   9       19
ZAREZ                  9       4
BROJ                   9       20
D_ZAGRADA              9       6
TOCKAZAREZ             9       13
D_VIT_ZAGRADA         10       14
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , power
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , base
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , exp
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , exp
                                                                    OP_EQ , ==
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , base
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , power
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , base
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , exp
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 1
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , power
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 2
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , power
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , base
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , exp
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , exp
                                                                    OP_EQ , ==
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , base
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , power
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , base
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , exp
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 1
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , power
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 2
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  power : INT (INT, INT) [defined]

  Nested Scope 1:
    base : INT
    exp : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=power, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=power, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=power, elements=0]
                            IDN (1,power) [symbol=power]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=base, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=base, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=base, elements=0]
                                            IDN (1,base) [symbol=base]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=exp, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=exp, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=exp, elements=0]
                                        IDN (1,exp) [symbol=exp]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,exp) [symbol=exp]
                                                                    OP_EQ (2,==)
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,0) [type=int]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (3,return)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (3,1) [type=int]
                                                        TOCKAZAREZ (3,;)
                                            D_VIT_ZAGRADA (4,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (5,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (5,base) [symbol=base]
                                                                            ASTERISK (5,*)
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                IDN (5,power) [symbol=power]
                                                                                        L_ZAGRADA (5,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,base) [symbol=base]
                                                                                            ZAREZ (5,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,exp) [symbol=exp]
                                                                                                                                MINUS (5,-)
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (5,1) [type=int]
                                                                                        D_ZAGRADA (5,))
                                TOCKAZAREZ (5,;)
                    D_VIT_ZAGRADA (6,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (8,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (8,main) [symbol=main]
                    L_ZAGRADA (8,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (8,void)
                    D_ZAGRADA (8,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (8,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                            IDN (9,power) [symbol=power]
                                                                                    L_ZAGRADA (9,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (9,2) [type=int]
                                                                                        ZAREZ (9,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (9,4) [type=int]
                                                                                    D_ZAGRADA (9,))
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_POWER                         ; Function power
; Parameter base at (R7+8)
; Parameter exp at (R7+12)
; Compound statement
; If statement
        LOAD R0, (R7+12)        ; load variable exp
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE1        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        LOAD R0, (R7+8)         ; load variable base
        PUSH R0                 ; save left operand
; Function call: power
        LOAD R0, (R7+12)        ; load variable exp
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        PUSH R0                 ; push argument 2
        LOAD R0, (R7+8)         ; load variable base
        PUSH R0                 ; push argument 1
        CALL F_POWER            ; call power
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from power

F_MAIN                          ; Function main
; Compound statement
; Function call: power
        MOVE 4, R0              ; load constant 4
        PUSH R0                 ; push argument 2
        MOVE 2, R0              ; load constant 2
        PUSH R0                 ; push argument 1
        CALL F_POWER            ; call power
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program37.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int gcd(int a, int b) {
    if (b == 0) {
        return a;
    }
    return gcd(b, a % b);
}

int main(void) {
    return gcd(48, 18);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                gcd
     2   L_ZAGRADA          (
     3   IDN                a
     4   ZAREZ              ,
     5   IDN                b
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_IF              if
     9   OP_EQ              ==
     10   BROJ               0
     11   KR_RETURN          return
     12   TOCKAZAREZ         ;
     13   D_VIT_ZAGRADA      }
     14   OP_MOD             %
     15   IDN                main
     16   KR_VOID            void
     17   BROJ               48
     18   BROJ               18

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_IF                  2       8
L_ZAGRADA              2       2
IDN                    2       5
OP_EQ                  2       9
BROJ                   2       10
D_ZAGRADA              2       6
L_VIT_ZAGRADA          2       7
KR_RETURN              3       11
IDN                    3       3
TOCKAZAREZ             3       12
D_VIT_ZAGRADA          4       13
KR_RETURN              5       11
IDN                    5       1
L_ZAGRADA              5       2
IDN                    5       5
ZAREZ                  5       4
IDN                    5       3
OP_MOD                 5       14
IDN                    5       5
D_ZAGRADA              5       6
TOCKAZAREZ             5       12
D_VIT_ZAGRADA          6       13
KR_INT                 8       0
IDN                    8       15
L_ZAGRADA              8       2
KR_VOID                8       16
D_ZAGRADA              8       6
L_VIT_ZAGRADA          8       7
KR_RETURN              9       11
IDN                    9       1
L_ZAGRADA              9       2
BROJ                   9       17
ZAREZ                  9       4
BROJ                   9       18
D_ZAGRADA              9       6
TOCKAZAREZ             9       12
D_VIT_ZAGRADA         10       13
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , gcd
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , b
                                                                    OP_EQ , ==
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , a
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , gcd
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , b
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , a
                                                                                                                                    OP_MOD , %
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , b
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , gcd
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 48
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 18
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , gcd
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , a
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , b
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , b
                                                                    OP_EQ , ==
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , a
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , gcd
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , b
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , a
                                                                                                                                    OP_MOD , %
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , b
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , gcd
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 48
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 18
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  gcd : INT (INT, INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=gcd, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=gcd, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=gcd, elements=0]
                            IDN (1,gcd) [symbol=gcd]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=a, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            IDN (1,a) [symbol=a]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=b, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        IDN (1,b) [symbol=b]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,b) [symbol=b]
                                                                    OP_EQ (2,==)
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,0) [type=int]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (3,return)
                                                        <<izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (3,a) [symbol=a]
                                                        TOCKAZAREZ (3,;)
                                            D_VIT_ZAGRADA (4,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (5,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                                IDN (5,gcd) [symbol=gcd]
                                                                                        L_ZAGRADA (5,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,b) [symbol=b]
                                                                                            ZAREZ (5,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,a) [symbol=a]
                                                                                                                                    OP_MOD (5,%)
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    IDN (5,b) [symbol=b]
                                                                                        D_ZAGRADA (5,))
                                TOCKAZAREZ (5,;)
                    D_VIT_ZAGRADA (6,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (8,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (8,main) [symbol=main]
                    L_ZAGRADA (8,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (8,void)
                    D_ZAGRADA (8,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (8,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                            IDN (9,gcd) [symbol=gcd]
                                                                                    L_ZAGRADA (9,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (9,48) [type=int]
                                                                                        ZAREZ (9,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (9,18) [type=int]
                                                                                    D_ZAGRADA (9,))
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_GCD                           ; Function gcd
; Parameter a at (R7+8)
; Parameter b at (R7+12)
; Compound statement
; If statement
        LOAD R0, (R7+12)        ; load variable b
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE1        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        LOAD R0, (R7+8)         ; load variable a
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
; Function call: gcd
        LOAD R0, (R7+8)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        PUSH R0                 ; push argument 2
        LOAD R0, (R7+12)        ; load variable b
        PUSH R0                 ; push argument 1
        CALL F_GCD              ; call gcd
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from gcd

F_MAIN                          ; Function main
; Compound statement
; Function call: gcd
        MOVE 18, R0             ; load constant 18
        PUSH R0                 ; push argument 2
        MOVE 48, R0             ; load constant 48
        PUSH R0                 ; push argument 1
        CALL F_GCD              ; call gcd
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program38.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    int j;
    int sum;
    sum = 0;
    for (i = 0; i < 3; i = i + 1) {
        for (j = 0; j < 3; j = j + 1) {
            sum = sum + 1;
        }
    }
    return sum;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   IDN                j
     9   IDN                sum
     10   OP_PRIDRUZI        =
     11   BROJ               0
     12   KR_FOR             for
     13   OP_LT              <
     14   BROJ               3
     15   PLUS               +
     16   BROJ               1
     17   D_VIT_ZAGRADA      }
     18   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       9
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
KR_FOR                 6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_PRIDRUZI            6       10
BROJ                   6       11
TOCKAZAREZ             6       7
IDN                    6       6
OP_LT                  6       13
BROJ                   6       14
TOCKAZAREZ             6       7
IDN                    6       6
OP_PRIDRUZI            6       10
IDN                    6       6
PLUS                   6       15
BROJ                   6       16
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_FOR                 7       12
L_ZAGRADA              7       2
IDN                    7       8
OP_PRIDRUZI            7       10
BROJ                   7       11
TOCKAZAREZ             7       7
IDN                    7       8
OP_LT                  7       13
BROJ                   7       14
TOCKAZAREZ             7       7
IDN                    7       8
OP_PRIDRUZI            7       10
IDN                    7       8
PLUS                   7       15
BROJ                   7       16
D_ZAGRADA              7       4
L_VIT_ZAGRADA          7       5
IDN                    8       9
OP_PRIDRUZI            8       10
IDN                    8       9
PLUS                   8       15
BROJ                   8       16
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       17
D_VIT_ZAGRADA         10       17
KR_RETURN             11       18
IDN                   11       9
TOCKAZAREZ            11       7
D_VIT_ZAGRADA         12       17
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , i
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , j
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , sum
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_petlje>
                                                    KR_FOR , for
                                                    L_ZAGRADA , (
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , j
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                        TOCKAZAREZ , ;
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                            OP_LT , <
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 3
                                                        TOCKAZAREZ , ;
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , j
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <izraz_naredba>
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum
                                                                                OP_PRIDRUZI , =
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , sum
                                                                                                                    PLUS , +
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 1
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , i
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , j
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , sum
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_petlje>
                                                    KR_FOR , for
                                                    L_ZAGRADA , (
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , j
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                        TOCKAZAREZ , ;
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                            OP_LT , <
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 3
                                                        TOCKAZAREZ , ;
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , j
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <izraz_naredba>
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum
                                                                                OP_PRIDRUZI , =
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , sum
                                                                                                                    PLUS , +
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 1
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT
    j : INT
    sum : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                                IDN (2,i) [symbol=i]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=j, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=j, elements=0]
                                            IDN (3,j) [symbol=j]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                        IDN (4,sum) [symbol=sum]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,sum) [symbol=sum]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,0) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (6,for)
                                L_ZAGRADA (6,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,i) [symbol=i]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,0) [type=int]
                                    TOCKAZAREZ (6,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,i) [symbol=i]
                                                                        OP_LT (6,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (6,3) [type=int]
                                    TOCKAZAREZ (6,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (6,i) [symbol=i]
                                        OP_PRIDRUZI (6,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,i) [symbol=i]
                                                                            PLUS (6,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (6,1) [type=int]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_petlje>> [lvalue=false, elements=0]
                                                    KR_FOR (7,for)
                                                    L_ZAGRADA (7,()
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (7,j) [symbol=j]
                                                                OP_PRIDRUZI (7,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (7,0) [type=int]
                                                        TOCKAZAREZ (7,;)
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (7,j) [symbol=j]
                                                                                            OP_LT (7,<)
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (7,3) [type=int]
                                                        TOCKAZAREZ (7,;)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        IDN (7,j) [symbol=j]
                                                            OP_PRIDRUZI (7,=)
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (7,j) [symbol=j]
                                                                                                PLUS (7,+)
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (7,1) [type=int]
                                                    D_ZAGRADA (7,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (7,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (8,sum) [symbol=sum]
                                                                                OP_PRIDRUZI (8,=)
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            IDN (8,sum) [symbol=sum]
                                                                                                                    PLUS (8,+)
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        BROJ (8,1) [type=int]
                                                                        TOCKAZAREZ (8,;)
                                                            D_VIT_ZAGRADA (9,})
                                        D_VIT_ZAGRADA (10,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (11,sum) [symbol=sum]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
; Local variable j at (R7-8)
; Local variable sum at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-12)       ; assign to sum
; For loop with increment (TODO)
        LOAD R0, (R7-12)        ; load variable sum
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program39.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = 10;
    if (x > 0) {
        if (y > 0) {
            return 1;
        }
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   BROJ               10
     12   KR_IF              if
     13   OP_GT              >
     14   BROJ               0
     15   KR_RETURN          return
     16   BROJ               1
     17   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_IF                  6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_GT                  6       13
BROJ                   6       14
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_IF                  7       12
L_ZAGRADA              7       2
IDN                    7       8
OP_GT                  7       13
BROJ                   7       14
D_ZAGRADA              7       4
L_VIT_ZAGRADA          7       5
KR_RETURN              8       15
BROJ                   8       16
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       17
D_VIT_ZAGRADA         10       17
KR_RETURN             11       15
BROJ                  11       14
TOCKAZAREZ            11       7
D_VIT_ZAGRADA         12       17
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , y
                                                                                        OP_GT , >
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 0
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_RETURN , return
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <log_ili_izraz>
                                                                                    <log_i_izraz>
                                                                                        <bin_ili_izraz>
                                                                                            <bin_xili_izraz>
                                                                                                <bin_i_izraz>
                                                                                                    <jednakosni_izraz>
                                                                                                        <odnosni_izraz>
                                                                                                            <aditivni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    BROJ , 1
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , y
                                                                                        OP_GT , >
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 0
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_RETURN , return
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <log_ili_izraz>
                                                                                    <log_i_izraz>
                                                                                        <bin_ili_izraz>
                                                                                            <bin_xili_izraz>
                                                                                                <bin_i_izraz>
                                                                                                    <jednakosni_izraz>
                                                                                                        <odnosni_izraz>
                                                                                                            <aditivni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    BROJ , 1
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,x) [symbol=x]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,5) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,y) [symbol=y]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,10) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (6,if)
                                L_ZAGRADA (6,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (6,x) [symbol=x]
                                                                    OP_GT (6,>)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (6,0) [type=int]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (7,if)
                                                    L_ZAGRADA (7,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (7,y) [symbol=y]
                                                                                        OP_GT (7,>)
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (7,0) [type=int]
                                                    D_ZAGRADA (7,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (7,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_RETURN (8,return)
                                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    BROJ (8,1) [type=int]
                                                                        TOCKAZAREZ (8,;)
                                                            D_VIT_ZAGRADA (9,})
                                        D_VIT_ZAGRADA (10,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (11,0) [type=int]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE1       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
; If statement
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE2       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END2            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END2                          ; end if
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program4.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = 3;
    return x - y;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   BROJ               3
     12   KR_RETURN          return
     13   MINUS              -
     14   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_RETURN              6       12
IDN                    6       6
MINUS                  6       13
IDN                    6       8
TOCKAZAREZ             6       7
D_VIT_ZAGRADA          7       14
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                                                    MINUS , -
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                                                    MINUS , -
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,x) [symbol=x]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,5) [type=int]
                                    TOCKAZAREZ (4,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (5,y) [symbol=y]
                                        OP_PRIDRUZI (5,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (5,3) [type=int]
                                TOCKAZAREZ (5,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (6,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (6,x) [symbol=x]
                                                                    MINUS (6,-)
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (6,y) [symbol=y]
                            TOCKAZAREZ (6,;)
                D_VIT_ZAGRADA (7,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-8)        ; assign to y
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program40.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    int j;
    for (i = 0; i < 5; i = i + 1) {
        for (j = 0; j < 5; j = j + 1) {
            if (i == j) {
                break;
            }
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   IDN                j
     9   KR_FOR             for
     10   OP_PRIDRUZI        =
     11   BROJ               0
     12   OP_LT              <
     13   BROJ               5
     14   PLUS               +
     15   BROJ               1
     16   KR_IF              if
     17   OP_EQ              ==
     18   KR_BREAK           break
     19   D_VIT_ZAGRADA      }
     20   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_FOR                 4       9
L_ZAGRADA              4       2
IDN                    4       6
OP_PRIDRUZI            4       10
BROJ                   4       11
TOCKAZAREZ             4       7
IDN                    4       6
OP_LT                  4       12
BROJ                   4       13
TOCKAZAREZ             4       7
IDN                    4       6
OP_PRIDRUZI            4       10
IDN                    4       6
PLUS                   4       14
BROJ                   4       15
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_FOR                 5       9
L_ZAGRADA              5       2
IDN                    5       8
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    5       8
OP_LT                  5       12
BROJ                   5       13
TOCKAZAREZ             5       7
IDN                    5       8
OP_PRIDRUZI            5       10
IDN                    5       8
PLUS                   5       14
BROJ                   5       15
D_ZAGRADA              5       4
L_VIT_ZAGRADA          5       5
KR_IF                  6       16
L_ZAGRADA              6       2
IDN                    6       6
OP_EQ                  6       17
IDN                    6       8
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_BREAK               7       18
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       19
D_VIT_ZAGRADA          9       19
D_VIT_ZAGRADA         10       19
KR_RETURN             11       20
IDN                   11       6
TOCKAZAREZ            11       7
D_VIT_ZAGRADA         12       19
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , j
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_petlje>
                                                    KR_FOR , for
                                                    L_ZAGRADA , (
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , j
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                        TOCKAZAREZ , ;
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                            OP_LT , <
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 5
                                                        TOCKAZAREZ , ;
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , j
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_grananja>
                                                                        KR_IF , if
                                                                        L_ZAGRADA , (
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <log_ili_izraz>
                                                                                    <log_i_izraz>
                                                                                        <bin_ili_izraz>
                                                                                            <bin_xili_izraz>
                                                                                                <bin_i_izraz>
                                                                                                    <jednakosni_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        IDN , i
                                                                                                        OP_EQ , ==
                                                                                                        <odnosni_izraz>
                                                                                                            <aditivni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    IDN , j
                                                                        D_ZAGRADA , )
                                                                        <naredba>
                                                                            <slozena_naredba>
                                                                                L_VIT_ZAGRADA , {
                                                                                <lista_naredbi>
                                                                                    <naredba>
                                                                                        <naredba_skoka>
                                                                                            KR_BREAK , break
                                                                                            TOCKAZAREZ , ;
                                                                                D_VIT_ZAGRADA , }
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , j
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_petlje>
                                                    KR_FOR , for
                                                    L_ZAGRADA , (
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , j
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                        TOCKAZAREZ , ;
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                            OP_LT , <
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 5
                                                        TOCKAZAREZ , ;
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , j
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_grananja>
                                                                        KR_IF , if
                                                                        L_ZAGRADA , (
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <log_ili_izraz>
                                                                                    <log_i_izraz>
                                                                                        <bin_ili_izraz>
                                                                                            <bin_xili_izraz>
                                                                                                <bin_i_izraz>
                                                                                                    <jednakosni_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        IDN , i
                                                                                                        OP_EQ , ==
                                                                                                        <odnosni_izraz>
                                                                                                            <aditivni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    IDN , j
                                                                        D_ZAGRADA , )
                                                                        <naredba>
                                                                            <slozena_naredba>
                                                                                L_VIT_ZAGRADA , {
                                                                                <lista_naredbi>
                                                                                    <naredba>
                                                                                        <naredba_skoka>
                                                                                            KR_BREAK , break
                                                                                            TOCKAZAREZ , ;
                                                                                D_VIT_ZAGRADA , }
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT
    j : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

        Nested Scope 1:
          (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            IDN (2,i) [symbol=i]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=j, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=j, elements=0]
                                        IDN (3,j) [symbol=j]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (4,for)
                                L_ZAGRADA (4,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,i) [symbol=i]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,0) [type=int]
                                    TOCKAZAREZ (4,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,i) [symbol=i]
                                                                        OP_LT (4,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,5) [type=int]
                                    TOCKAZAREZ (4,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,i) [symbol=i]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,i) [symbol=i]
                                                                            PLUS (4,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,1) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_petlje>> [lvalue=false, elements=0]
                                                    KR_FOR (5,for)
                                                    L_ZAGRADA (5,()
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (5,j) [symbol=j]
                                                                OP_PRIDRUZI (5,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (5,0) [type=int]
                                                        TOCKAZAREZ (5,;)
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (5,j) [symbol=j]
                                                                                            OP_LT (5,<)
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (5,5) [type=int]
                                                        TOCKAZAREZ (5,;)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        IDN (5,j) [symbol=j]
                                                            OP_PRIDRUZI (5,=)
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (5,j) [symbol=j]
                                                                                                PLUS (5,+)
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (5,1) [type=int]
                                                    D_ZAGRADA (5,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (5,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                                        KR_IF (6,if)
                                                                        L_ZAGRADA (6,()
                                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        IDN (6,i) [symbol=i]
                                                                                                        OP_EQ (6,==)
                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    IDN (6,j) [symbol=j]
                                                                        D_ZAGRADA (6,))
                                                                        <<naredba>> [lvalue=false, elements=0]
                                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                                L_VIT_ZAGRADA (6,{)
                                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                                                            KR_BREAK (7,break)
                                                                                            TOCKAZAREZ (7,;)
                                                                                D_VIT_ZAGRADA (8,})
                                                            D_VIT_ZAGRADA (9,})
                                        D_VIT_ZAGRADA (10,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (11,i) [symbol=i]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
; Local variable j at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program41.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
struct Point {
    int x;
    int y;
};

int main(void) {
    struct Point p;
    p.x = 10;
    p.y = 20;
    return p.x + p.y;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_STRUCT          struct
     1   IDN                Point
     2   L_VIT_ZAGRADA      {
     3   KR_INT             int
     4   IDN                x
     5   TOCKAZAREZ         ;
     6   IDN                y
     7   D_VIT_ZAGRADA      }
     8   IDN                main
     9   L_ZAGRADA          (
     10   KR_VOID            void
     11   D_ZAGRADA          )
     12   IDN                p
     13   TOCKA              .
     14   OP_PRIDRUZI        =
     15   BROJ               10
     16   BROJ               20
     17   KR_RETURN          return
     18   PLUS               +

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_STRUCT              1       0
IDN                    1       1
L_VIT_ZAGRADA          1       2
KR_INT                 2       3
IDN                    2       4
TOCKAZAREZ             2       5
KR_INT                 3       3
IDN                    3       6
TOCKAZAREZ             3       5
D_VIT_ZAGRADA          4       7
TOCKAZAREZ             4       5
KR_INT                 6       3
IDN                    6       8
L_ZAGRADA              6       9
KR_VOID                6       10
D_ZAGRADA              6       11
L_VIT_ZAGRADA          6       2
KR_STRUCT              7       0
IDN                    7       1
IDN                    7       12
TOCKAZAREZ             7       5
IDN                    8       12
TOCKA                  8       13
IDN                    8       4
OP_PRIDRUZI            8       14
BROJ                   8       15
TOCKAZAREZ             8       5
IDN                    9       12
TOCKA                  9       13
IDN                    9       6
OP_PRIDRUZI            9       14
BROJ                   9       16
TOCKAZAREZ             9       5
KR_RETURN             10       17
IDN                   10       12
TOCKA                 10       13
IDN                   10       4
PLUS                  10       18
IDN                   10       12
TOCKA                 10       13
IDN                   10       6
TOCKAZAREZ            10       5
D_VIT_ZAGRADA         11       7
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        <struct_specifikator>
                            KR_STRUCT , struct
                            IDN , Point
                            L_VIT_ZAGRADA , {
                            <struct_lista_deklaracija>
                                <struct_lista_deklaracija>
                                    <struct_deklaracija>
                                        <lista_specifikatora_kvalifikatora>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <struct_lista_deklaratora>
                                            <struct_deklarator>
                                                <deklarator>
                                                    <izravni_deklarator>
                                                        IDN , x
                                        TOCKAZAREZ , ;
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , y
                                    TOCKAZAREZ , ;
                            D_VIT_ZAGRADA , }
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                <struct_specifikator>
                                    KR_STRUCT , struct
                                    IDN , Point
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , p
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , p
                                                    TOCKA , .
                                                    IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , p
                                                TOCKA , .
                                                IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 20
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , p
                                                                                        TOCKA , .
                                                                                        IDN , x
                                                                    PLUS , +
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , p
                                                                                    TOCKA , .
                                                                                    IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    <struct_specifikator>
                        KR_STRUCT , struct
                        IDN , Point
                        L_VIT_ZAGRADA , {
                        <struct_lista_deklaracija>
                            <struct_lista_deklaracija>
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        KR_INT , int
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , x
                                    TOCKAZAREZ , ;
                            <struct_deklaracija>
                                <lista_specifikatora_kvalifikatora>
                                    KR_INT , int
                                <struct_lista_deklaratora>
                                    <struct_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , y
                                TOCKAZAREZ , ;
                        D_VIT_ZAGRADA , }
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <struct_specifikator>
                                KR_STRUCT , struct
                                IDN , Point
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , p
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , p
                                                    TOCKA , .
                                                    IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , p
                                                TOCKA , .
                                                IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 20
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , p
                                                                                        TOCKA , .
                                                                                        IDN , x
                                                                    PLUS , +
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , p
                                                                                    TOCKA , .
                                                                                    IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Analysis Errors

SEMANTIC ERRORS:
Semantic analysis failed: class hr.fer.ppj.semantics.tree.NonTerminalNode cannot be cast to class hr.fer.ppj.semantics.tree.TerminalNode (hr.fer.ppj.semantics.tree.NonTerminalNode and hr.fer.ppj.semantics.tree.TerminalNode are in unnamed module of loader 'app')
        

program42.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
struct Rectangle {
    int width;
    int height;
};

int area(struct Rectangle r) {
    return r.width * r.height;
}

int main(void) {
    struct Rectangle rect;
    rect.width = 5;
    rect.height = 10;
    return area(rect);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_STRUCT          struct
     1   IDN                Rectangle
     2   L_VIT_ZAGRADA      {
     3   KR_INT             int
     4   IDN                width
     5   TOCKAZAREZ         ;
     6   IDN                height
     7   D_VIT_ZAGRADA      }
     8   IDN                area
     9   L_ZAGRADA          (
     10   IDN                r
     11   D_ZAGRADA          )
     12   KR_RETURN          return
     13   TOCKA              .
     14   ASTERISK           *
     15   IDN                main
     16   KR_VOID            void
     17   IDN                rect
     18   OP_PRIDRUZI        =
     19   BROJ               5
     20   BROJ               10

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_STRUCT              1       0
IDN                    1       1
L_VIT_ZAGRADA          1       2
KR_INT                 2       3
IDN                    2       4
TOCKAZAREZ             2       5
KR_INT                 3       3
IDN                    3       6
TOCKAZAREZ             3       5
D_VIT_ZAGRADA          4       7
TOCKAZAREZ             4       5
KR_INT                 6       3
IDN                    6       8
L_ZAGRADA              6       9
KR_STRUCT              6       0
IDN                    6       1
IDN                    6       10
D_ZAGRADA              6       11
L_VIT_ZAGRADA          6       2
KR_RETURN              7       12
IDN                    7       10
TOCKA                  7       13
IDN                    7       4
ASTERISK               7       14
IDN                    7       10
TOCKA                  7       13
IDN                    7       6
TOCKAZAREZ             7       5
D_VIT_ZAGRADA          8       7
KR_INT                10       3
IDN                   10       15
L_ZAGRADA             10       9
KR_VOID               10       16
D_ZAGRADA             10       11
L_VIT_ZAGRADA         10       2
KR_STRUCT             11       0
IDN                   11       1
IDN                   11       17
TOCKAZAREZ            11       5
IDN                   12       17
TOCKA                 12       13
IDN                   12       4
OP_PRIDRUZI           12       18
BROJ                  12       19
TOCKAZAREZ            12       5
IDN                   13       17
TOCKA                 13       13
IDN                   13       6
OP_PRIDRUZI           13       18
BROJ                  13       20
TOCKAZAREZ            13       5
KR_RETURN             14       12
IDN                   14       8
L_ZAGRADA             14       9
IDN                   14       17
D_ZAGRADA             14       11
TOCKAZAREZ            14       5
D_VIT_ZAGRADA         15       7
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <prijevodna_jedinica>
            <vanjska_deklaracija>
                <deklaracija>
                    <specifikatori_deklaracije>
                        <specifikator_tipa>
                            <struct_specifikator>
                                KR_STRUCT , struct
                                IDN , Rectangle
                                L_VIT_ZAGRADA , {
                                <struct_lista_deklaracija>
                                    <struct_lista_deklaracija>
                                        <struct_deklaracija>
                                            <lista_specifikatora_kvalifikatora>
                                                <specifikator_tipa>
                                                    KR_INT , int
                                            <struct_lista_deklaratora>
                                                <struct_deklarator>
                                                    <deklarator>
                                                        <izravni_deklarator>
                                                            IDN , width
                                            TOCKAZAREZ , ;
                                    <struct_deklaracija>
                                        <lista_specifikatora_kvalifikatora>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <struct_lista_deklaratora>
                                            <struct_deklarator>
                                                <deklarator>
                                                    <izravni_deklarator>
                                                        IDN , height
                                        TOCKAZAREZ , ;
                                D_VIT_ZAGRADA , }
                    TOCKAZAREZ , ;
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , area
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        <struct_specifikator>
                                            KR_STRUCT , struct
                                            IDN , Rectangle
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , r
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , r
                                                                                            TOCKA , .
                                                                                            IDN , width
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , r
                                                                                        TOCKA , .
                                                                                        IDN , height
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                <struct_specifikator>
                                    KR_STRUCT , struct
                                    IDN , Rectangle
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , rect
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , rect
                                                    TOCKA , .
                                                    IDN , width
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , rect
                                                TOCKA , .
                                                IDN , height
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , area
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , rect
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <prijevodna_jedinica>
            <vanjska_deklaracija>
                <deklaracija>
                    <specifikatori_deklaracije>
                        <struct_specifikator>
                            KR_STRUCT , struct
                            IDN , Rectangle
                            L_VIT_ZAGRADA , {
                            <struct_lista_deklaracija>
                                <struct_lista_deklaracija>
                                    <struct_deklaracija>
                                        <lista_specifikatora_kvalifikatora>
                                            KR_INT , int
                                        <struct_lista_deklaratora>
                                            <struct_deklarator>
                                                <deklarator>
                                                    <izravni_deklarator>
                                                        IDN , width
                                        TOCKAZAREZ , ;
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        KR_INT , int
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , height
                                    TOCKAZAREZ , ;
                            D_VIT_ZAGRADA , }
                    TOCKAZAREZ , ;
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , area
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <struct_specifikator>
                                        KR_STRUCT , struct
                                        IDN , Rectangle
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , r
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , r
                                                                                            TOCKA , .
                                                                                            IDN , width
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , r
                                                                                        TOCKA , .
                                                                                        IDN , height
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <struct_specifikator>
                                KR_STRUCT , struct
                                IDN , Rectangle
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , rect
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , rect
                                                    TOCKA , .
                                                    IDN , width
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , rect
                                                TOCKA , .
                                                IDN , height
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , area
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , rect
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Analysis Errors

SEMANTIC ERRORS:
Semantic analysis failed: class hr.fer.ppj.semantics.tree.NonTerminalNode cannot be cast to class hr.fer.ppj.semantics.tree.TerminalNode (hr.fer.ppj.semantics.tree.NonTerminalNode and hr.fer.ppj.semantics.tree.TerminalNode are in unnamed module of loader 'app')
        

program43.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
struct Node {
    int value;
    int next;
};

int main(void) {
    struct Node node;
    node.value = 42;
    node.next = 0;
    return node.value;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_STRUCT          struct
     1   IDN                Node
     2   L_VIT_ZAGRADA      {
     3   KR_INT             int
     4   IDN                value
     5   TOCKAZAREZ         ;
     6   IDN                next
     7   D_VIT_ZAGRADA      }
     8   IDN                main
     9   L_ZAGRADA          (
     10   KR_VOID            void
     11   D_ZAGRADA          )
     12   IDN                node
     13   TOCKA              .
     14   OP_PRIDRUZI        =
     15   BROJ               42
     16   BROJ               0
     17   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_STRUCT              1       0
IDN                    1       1
L_VIT_ZAGRADA          1       2
KR_INT                 2       3
IDN                    2       4
TOCKAZAREZ             2       5
KR_INT                 3       3
IDN                    3       6
TOCKAZAREZ             3       5
D_VIT_ZAGRADA          4       7
TOCKAZAREZ             4       5
KR_INT                 6       3
IDN                    6       8
L_ZAGRADA              6       9
KR_VOID                6       10
D_ZAGRADA              6       11
L_VIT_ZAGRADA          6       2
KR_STRUCT              7       0
IDN                    7       1
IDN                    7       12
TOCKAZAREZ             7       5
IDN                    8       12
TOCKA                  8       13
IDN                    8       4
OP_PRIDRUZI            8       14
BROJ                   8       15
TOCKAZAREZ             8       5
IDN                    9       12
TOCKA                  9       13
IDN                    9       6
OP_PRIDRUZI            9       14
BROJ                   9       16
TOCKAZAREZ             9       5
KR_RETURN             10       17
IDN                   10       12
TOCKA                 10       13
IDN                   10       4
TOCKAZAREZ            10       5
D_VIT_ZAGRADA         11       7
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        <struct_specifikator>
                            KR_STRUCT , struct
                            IDN , Node
                            L_VIT_ZAGRADA , {
                            <struct_lista_deklaracija>
                                <struct_lista_deklaracija>
                                    <struct_deklaracija>
                                        <lista_specifikatora_kvalifikatora>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <struct_lista_deklaratora>
                                            <struct_deklarator>
                                                <deklarator>
                                                    <izravni_deklarator>
                                                        IDN , value
                                        TOCKAZAREZ , ;
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , next
                                    TOCKAZAREZ , ;
                            D_VIT_ZAGRADA , }
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                <struct_specifikator>
                                    KR_STRUCT , struct
                                    IDN , Node
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , node
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , node
                                                    TOCKA , .
                                                    IDN , value
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 42
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , node
                                                TOCKA , .
                                                IDN , next
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , node
                                                                                    TOCKA , .
                                                                                    IDN , value
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    <struct_specifikator>
                        KR_STRUCT , struct
                        IDN , Node
                        L_VIT_ZAGRADA , {
                        <struct_lista_deklaracija>
                            <struct_lista_deklaracija>
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        KR_INT , int
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , value
                                    TOCKAZAREZ , ;
                            <struct_deklaracija>
                                <lista_specifikatora_kvalifikatora>
                                    KR_INT , int
                                <struct_lista_deklaratora>
                                    <struct_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , next
                                TOCKAZAREZ , ;
                        D_VIT_ZAGRADA , }
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <struct_specifikator>
                                KR_STRUCT , struct
                                IDN , Node
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , node
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , node
                                                    TOCKA , .
                                                    IDN , value
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 42
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , node
                                                TOCKA , .
                                                IDN , next
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , node
                                                                                    TOCKA , .
                                                                                    IDN , value
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Analysis Errors

SEMANTIC ERRORS:
Semantic analysis failed: class hr.fer.ppj.semantics.tree.NonTerminalNode cannot be cast to class hr.fer.ppj.semantics.tree.TerminalNode (hr.fer.ppj.semantics.tree.NonTerminalNode and hr.fer.ppj.semantics.tree.TerminalNode are in unnamed module of loader 'app')
        

program44.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    x = x + 1;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   PLUS               +
     11   BROJ               1
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
PLUS                   4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                            PLUS (4,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,1) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program45.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    x = x - 1;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   MINUS              -
     11   BROJ               1
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
MINUS                  4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            MINUS , -
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            MINUS , -
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                            MINUS (4,-)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,1) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program46.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    x = x + 3;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   PLUS               +
     11   BROJ               3
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
PLUS                   4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                            PLUS (4,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,3) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 3, R0              ; load constant 3
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program47.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 10;
    x = x - 3;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               10
     10   MINUS              -
     11   BROJ               3
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
MINUS                  4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            MINUS , -
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            MINUS , -
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,10) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                            MINUS (4,-)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,3) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 3, R0              ; load constant 3
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program48.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    x = x * 2;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   ASTERISK           *
     11   BROJ               2
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
ASTERISK               4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                                ASTERISK (4,*)
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,2) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program49.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 20;
    x = x / 4;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               20
     10   OP_DIJELI          /
     11   BROJ               4
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
OP_DIJELI              4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 20
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                                OP_DIJELI , /
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 20
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                                OP_DIJELI , /
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,20) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                                OP_DIJELI (4,/)
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,4) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 20, R0             ; load constant 20
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 4, R0              ; load constant 4
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Division not implemented (TODO)
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program5.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int a;
    int b;
    int result;
    a = 7;
    b = 3;
    result = a * b;
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                a
     7   TOCKAZAREZ         ;
     8   IDN                b
     9   IDN                result
     10   OP_PRIDRUZI        =
     11   BROJ               7
     12   BROJ               3
     13   ASTERISK           *
     14   KR_RETURN          return
     15   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
IDN                    7       6
ASTERISK               7       13
IDN                    7       8
TOCKAZAREZ             7       7
KR_RETURN              8       14
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 7
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 7
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                IDN (2,a) [symbol=a]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            IDN (3,b) [symbol=b]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (4,result) [symbol=result]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,a) [symbol=a]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,7) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,b) [symbol=b]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,3) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,result) [symbol=result]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,a) [symbol=a]
                                                                                ASTERISK (7,*)
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (7,b) [symbol=b]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,result) [symbol=result]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable a at (R7-4)
; Local variable b at (R7-8)
; Local variable result at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 7, R0              ; load constant 7
        STORE R0, (R7-4)        ; assign to a
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-8)        ; assign to b
        LOAD R0, (R7-4)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        STORE R0, (R7-12)       ; assign to result
        LOAD R0, (R7-12)        ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program50.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 17;
    x = x % 5;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               17
     10   OP_MOD             %
     11   BROJ               5
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       8
IDN                    4       6
OP_MOD                 4       10
BROJ                   4       11
TOCKAZAREZ             4       7
KR_RETURN              5       12
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 17
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                                OP_MOD , %
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 17
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                                OP_MOD , %
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,17) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,x) [symbol=x]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,x) [symbol=x]
                                                                                OP_MOD (4,%)
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,5) [type=int]
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 17, R0             ; load constant 17
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 5, R0              ; load constant 5
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program51.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    x++;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   OP_INC             ++
     11   KR_RETURN          return
     12   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_INC                 4       10
TOCKAZAREZ             4       7
KR_RETURN              5       11
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       12
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                                        OP_INC , ++
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                                        OP_INC , ++
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                                        OP_INC (4,++)
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load x
        MOVE R0, R1             ; save old value
        ADD R0, 1, R0           ; post-increment
        STORE R0, (R7-4)        ; store incremented x
        MOVE R1, R0             ; return old value
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program52.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    x--;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   OP_DEC             --
     11   KR_RETURN          return
     12   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_DEC                 4       10
TOCKAZAREZ             4       7
KR_RETURN              5       11
IDN                    5       6
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       12
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                                        OP_DEC , --
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                                        OP_DEC , --
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                                        OP_DEC (4,--)
                                TOCKAZAREZ (4,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (5,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (5,x) [symbol=x]
                            TOCKAZAREZ (5,;)
                D_VIT_ZAGRADA (6,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load x
        MOVE R0, R1             ; save old value
        SUB R0, 1, R0           ; post-decrement
        STORE R0, (R7-4)        ; store decremented x
        MOVE R1, R0             ; return old value
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program53.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = ++x;
    return y;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   OP_INC             ++
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
OP_INC                 5       11
IDN                    5       6
TOCKAZAREZ             5       7
KR_RETURN              6       12
IDN                    6       8
TOCKAZAREZ             6       7
D_VIT_ZAGRADA          7       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        OP_INC , ++
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        OP_INC , ++
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,x) [symbol=x]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,5) [type=int]
                                    TOCKAZAREZ (4,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (5,y) [symbol=y]
                                        OP_PRIDRUZI (5,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        OP_INC (5,++)
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (5,x) [symbol=x]
                                TOCKAZAREZ (5,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (6,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (6,y) [symbol=y]
                            TOCKAZAREZ (6,;)
                D_VIT_ZAGRADA (7,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load x
        ADD R0, 1, R0           ; pre-increment
        STORE R0, (R7-4)        ; store incremented x
        STORE R0, (R7-8)        ; assign to y
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program54.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = --x;
    return y;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   OP_DEC             --
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
OP_DEC                 5       11
IDN                    5       6
TOCKAZAREZ             5       7
KR_RETURN              6       12
IDN                    6       8
TOCKAZAREZ             6       7
D_VIT_ZAGRADA          7       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        OP_DEC , --
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , y
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        OP_DEC , --
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , y
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,x) [symbol=x]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,5) [type=int]
                                    TOCKAZAREZ (4,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (5,y) [symbol=y]
                                        OP_PRIDRUZI (5,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        OP_DEC (5,--)
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (5,x) [symbol=x]
                                TOCKAZAREZ (5,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (6,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (6,y) [symbol=y]
                            TOCKAZAREZ (6,;)
                D_VIT_ZAGRADA (7,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load x
        SUB R0, 1, R0           ; pre-decrement
        STORE R0, (R7-4)        ; store decremented x
        STORE R0, (R7-8)        ; assign to y
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program55.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int arr[10];
    int i;
    for (i = 0; i < 10; i = i + 1) {
        arr[i] = i * 2;
    }
    return arr[5];
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                arr
     7   L_UGL_ZAGRADA      [
     8   BROJ               10
     9   D_UGL_ZAGRADA      ]
     10   TOCKAZAREZ         ;
     11   IDN                i
     12   KR_FOR             for
     13   OP_PRIDRUZI        =
     14   BROJ               0
     15   OP_LT              <
     16   PLUS               +
     17   BROJ               1
     18   ASTERISK           *
     19   BROJ               2
     20   D_VIT_ZAGRADA      }
     21   KR_RETURN          return
     22   BROJ               5

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
L_UGL_ZAGRADA          2       7
BROJ                   2       8
D_UGL_ZAGRADA          2       9
TOCKAZAREZ             2       10
KR_INT                 3       0
IDN                    3       11
TOCKAZAREZ             3       10
KR_FOR                 4       12
L_ZAGRADA              4       2
IDN                    4       11
OP_PRIDRUZI            4       13
BROJ                   4       14
TOCKAZAREZ             4       10
IDN                    4       11
OP_LT                  4       15
BROJ                   4       8
TOCKAZAREZ             4       10
IDN                    4       11
OP_PRIDRUZI            4       13
IDN                    4       11
PLUS                   4       16
BROJ                   4       17
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
L_UGL_ZAGRADA          5       7
IDN                    5       11
D_UGL_ZAGRADA          5       9
OP_PRIDRUZI            5       13
IDN                    5       11
ASTERISK               5       18
BROJ                   5       19
TOCKAZAREZ             5       10
D_VIT_ZAGRADA          6       20
KR_RETURN              7       21
IDN                    7       6
L_UGL_ZAGRADA          7       7
BROJ                   7       22
D_UGL_ZAGRADA          7       9
TOCKAZAREZ             7       10
D_VIT_ZAGRADA          8       20
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                            D_UGL_ZAGRADA , ]
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , arr
                                                                    L_UGL_ZAGRADA , [
                                                                    <izraz>
                                                                        <izraz_pridruzivanja>
                                                                            <log_ili_izraz>
                                                                                <log_i_izraz>
                                                                                    <bin_ili_izraz>
                                                                                        <bin_xili_izraz>
                                                                                            <bin_i_izraz>
                                                                                                <jednakosni_izraz>
                                                                                                    <odnosni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , i
                                                                    D_UGL_ZAGRADA , ]
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                    ASTERISK , *
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , arr
                                                                                    L_UGL_ZAGRADA , [
                                                                                    <izraz>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_UGL_ZAGRADA , ]
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                            D_UGL_ZAGRADA , ]
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , arr
                                                                    L_UGL_ZAGRADA , [
                                                                    <izraz>
                                                                        <izraz_pridruzivanja>
                                                                            <log_ili_izraz>
                                                                                <log_i_izraz>
                                                                                    <bin_ili_izraz>
                                                                                        <bin_xili_izraz>
                                                                                            <bin_i_izraz>
                                                                                                <jednakosni_izraz>
                                                                                                    <odnosni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , i
                                                                    D_UGL_ZAGRADA , ]
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                                    ASTERISK , *
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , arr
                                                                                    L_UGL_ZAGRADA , [
                                                                                    <izraz>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_UGL_ZAGRADA , ]
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    arr : array(INT)
    i : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=10]
                                        <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=10]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                                IDN (2,arr) [symbol=arr]
                                            L_UGL_ZAGRADA (2,[)
                                            <<log_ili_izraz>> [lvalue=false, elements=0]
                                                <<log_i_izraz>> [lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [lvalue=false, elements=0]
                                                                                <<cast_izraz>> [lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [lvalue=false, elements=0]
                                                                                                BROJ (2,10) [type=int]
                                            D_UGL_ZAGRADA (2,])
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (3,i) [symbol=i]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (4,for)
                                L_ZAGRADA (4,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (4,i) [symbol=i]
                                            OP_PRIDRUZI (4,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (4,0) [type=int]
                                    TOCKAZAREZ (4,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,i) [symbol=i]
                                                                        OP_LT (4,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,10) [type=int]
                                    TOCKAZAREZ (4,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (4,i) [symbol=i]
                                        OP_PRIDRUZI (4,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,i) [symbol=i]
                                                                            PLUS (4,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,1) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                            IDN (5,arr) [symbol=arr]
                                                                    L_UGL_ZAGRADA (5,[)
                                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                IDN (5,i) [symbol=i]
                                                                    D_UGL_ZAGRADA (5,])
                                                            OP_PRIDRUZI (5,=)
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (5,i) [symbol=i]
                                                                                                    ASTERISK (5,*)
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (5,2) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                            IDN (7,arr) [symbol=arr]
                                                                                    L_UGL_ZAGRADA (7,[)
                                                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (7,5) [type=int]
                                                                                    D_UGL_ZAGRADA (7,])
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable arr at (R7-4)
; Local variable i at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
; Complex postfix expression (TODO)
        LOAD R0, (R7-4)         ; load variable arr
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program56.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    char c;
    c = 'A';
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_CHAR            char
     7   IDN                c
     8   TOCKAZAREZ         ;
     9   OP_PRIDRUZI        =
     10   ZNAK               'A'
     11   KR_RETURN          return
     12   BROJ               0
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_CHAR                2       6
IDN                    2       7
TOCKAZAREZ             2       8
IDN                    3       7
OP_PRIDRUZI            3       9
ZNAK                   3       10
TOCKAZAREZ             3       8
KR_RETURN              4       11
BROJ                   4       12
TOCKAZAREZ             4       8
D_VIT_ZAGRADA          5       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_CHAR , char
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , c
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                ZNAK , 'A'
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_CHAR , char
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , c
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                ZNAK , 'A'
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    c : CHAR

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=CHAR, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=CHAR, lvalue=false, elements=0]
                                KR_CHAR (2,char)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=CHAR, lvalue=true, id=c, elements=0]
                                    <<izravni_deklarator>> [type=CHAR, lvalue=true, id=c, elements=0]
                                        IDN (2,c) [symbol=c]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=CHAR, lvalue=false, elements=0]
                                <<izraz>> [type=CHAR, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=CHAR, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=CHAR, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=CHAR, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=CHAR, lvalue=true, elements=0]
                                                    IDN (3,c) [symbol=c]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=CHAR, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=CHAR, lvalue=false, elements=0]
                                                                                                ZNAK (3,'A') [type=char]
                                TOCKAZAREZ (3,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (4,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (4,0) [type=int]
                            TOCKAZAREZ (4,;)
                D_VIT_ZAGRADA (5,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable c at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 65, R0             ; load char ''A''
        STORE R0, (R7-4)        ; assign to c
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program57.c

Lexer: OK Parser: OK Semantic error at line 2 CodeGen: Skipped (semantic failed)
Source Code
int main(void) {
    float f;
    f = 3.14159;
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_FLOAT           float
     7   IDN                f
     8   TOCKAZAREZ         ;
     9   OP_PRIDRUZI        =
     10   BROJ               3.14159
     11   KR_RETURN          return
     12   BROJ               0
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_FLOAT               2       6
IDN                    2       7
TOCKAZAREZ             2       8
IDN                    3       7
OP_PRIDRUZI            3       9
BROJ                   3       10
TOCKAZAREZ             3       8
KR_RETURN              4       11
BROJ                   4       12
TOCKAZAREZ             4       8
D_VIT_ZAGRADA          5       13
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_FLOAT , float
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , f
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , f
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3.14159
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_FLOAT , float
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , f
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , f
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3.14159
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<specifikator_tipa> ::= KR_FLOAT(2,float)

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program58.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
const int MAX = 100;

int main(void) {
    int x;
    x = MAX;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_CONST           const
     1   KR_INT             int
     2   IDN                MAX
     3   OP_PRIDRUZI        =
     4   BROJ               100
     5   TOCKAZAREZ         ;
     6   IDN                main
     7   L_ZAGRADA          (
     8   KR_VOID            void
     9   D_ZAGRADA          )
     10   L_VIT_ZAGRADA      {
     11   IDN                x
     12   KR_RETURN          return
     13   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_CONST               1       0
KR_INT                 1       1
IDN                    1       2
OP_PRIDRUZI            1       3
BROJ                   1       4
TOCKAZAREZ             1       5
KR_INT                 3       1
IDN                    3       6
L_ZAGRADA              3       7
KR_VOID                3       8
D_ZAGRADA              3       9
L_VIT_ZAGRADA          3       10
KR_INT                 4       1
IDN                    4       11
TOCKAZAREZ             4       5
IDN                    5       11
OP_PRIDRUZI            5       3
IDN                    5       2
TOCKAZAREZ             5       5
KR_RETURN              6       12
IDN                    6       11
TOCKAZAREZ             6       5
D_VIT_ZAGRADA          7       13
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    KR_CONST , const
                    <specifikatori_deklaracije>
                        <specifikator_tipa>
                            KR_INT , int
                <lista_init_deklaratora>
                    <init_deklarator>
                        <deklarator>
                            <izravni_deklarator>
                                IDN , MAX
                        OP_PRIDRUZI , =
                        <inicijalizator>
                            <izraz_pridruzivanja>
                                <log_ili_izraz>
                                    <log_i_izraz>
                                        <bin_ili_izraz>
                                            <bin_xili_izraz>
                                                <bin_i_izraz>
                                                    <jednakosni_izraz>
                                                        <odnosni_izraz>
                                                            <aditivni_izraz>
                                                                <multiplikativni_izraz>
                                                                    <cast_izraz>
                                                                        <unarni_izraz>
                                                                            <postfiks_izraz>
                                                                                <primarni_izraz>
                                                                                    BROJ , 100
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , MAX
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    KR_CONST , const
                    <specifikatori_deklaracije>
                        KR_INT , int
                <lista_init_deklaratora>
                    <init_deklarator>
                        <deklarator>
                            <izravni_deklarator>
                                IDN , MAX
                        OP_PRIDRUZI , =
                        <inicijalizator>
                            <izraz_pridruzivanja>
                                <log_ili_izraz>
                                    <log_i_izraz>
                                        <bin_ili_izraz>
                                            <bin_xili_izraz>
                                                <bin_i_izraz>
                                                    <jednakosni_izraz>
                                                        <odnosni_izraz>
                                                            <aditivni_izraz>
                                                                <multiplikativni_izraz>
                                                                    <cast_izraz>
                                                                        <unarni_izraz>
                                                                            <postfiks_izraz>
                                                                                <primarni_izraz>
                                                                                    BROJ , 100
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , MAX
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  MAX : const INT (const)
  main : INT () [defined]

  Nested Scope 1:
    x : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<deklaracija>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=const INT, lvalue=false, elements=0]
                    KR_CONST (1,const)
                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                            KR_INT (1,int)
                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                    <<init_deklarator>> [lvalue=false, elements=0]
                        <<deklarator>> [type=const INT, lvalue=true, id=MAX, elements=0]
                            <<izravni_deklarator>> [type=const INT, lvalue=true, id=MAX, elements=0]
                                IDN (1,MAX) [symbol=MAX]
                        OP_PRIDRUZI (1,=)
                        <<inicijalizator>> [lvalue=false, elements=0]
                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    BROJ (1,100) [type=int]
                TOCKAZAREZ (1,;)
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (3,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (3,main) [symbol=main]
                    L_ZAGRADA (3,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (3,void)
                    D_ZAGRADA (3,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (3,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (4,x) [symbol=x]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (5,x) [symbol=x]
                                        OP_PRIDRUZI (5,=)
                                        <<izraz_pridruzivanja>> [type=const INT, lvalue=true, elements=0]
                                            <<log_ili_izraz>> [type=const INT, lvalue=true, elements=0]
                                                <<log_i_izraz>> [type=const INT, lvalue=true, elements=0]
                                                    <<bin_ili_izraz>> [type=const INT, lvalue=true, elements=0]
                                                        <<bin_xili_izraz>> [type=const INT, lvalue=true, elements=0]
                                                            <<bin_i_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                <<jednakosni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                    <<odnosni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                                IDN (5,MAX) [symbol=MAX]
                                TOCKAZAREZ (5,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (6,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (6,x) [symbol=x]
                            TOCKAZAREZ (6,;)
                D_VIT_ZAGRADA (7,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        LOAD R0, (G_MAX)        ; load variable MAX
        STORE R0, (R7-4)        ; assign to x
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables
G_MAX   DW %D 0                 ; global const ConstType[baseType=INT] MAX

program59.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    const int x = 5;
    return x;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_CONST           const
     7   IDN                x
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   TOCKAZAREZ         ;
     11   KR_RETURN          return
     12   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_CONST               2       6
KR_INT                 2       0
IDN                    2       7
OP_PRIDRUZI            2       8
BROJ                   2       9
TOCKAZAREZ             2       10
KR_RETURN              3       11
IDN                    3       7
TOCKAZAREZ             3       10
D_VIT_ZAGRADA          4       12
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_CONST , const
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                                OP_PRIDRUZI , =
                                <inicijalizator>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_CONST , const
                            <specifikatori_deklaracije>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                                OP_PRIDRUZI , =
                                <inicijalizator>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , x
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : const INT (const)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=const INT, lvalue=false, elements=0]
                            KR_CONST (2,const)
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=const INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=const INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                                OP_PRIDRUZI (2,=)
                                <<inicijalizator>> [lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (2,5) [type=int]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (3,return)
                            <<izraz>> [type=const INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=const INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=const INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=const INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=const INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=const INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=const INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=const INT, lvalue=true, elements=0]
                                                                                        IDN (3,x) [symbol=x]
                            TOCKAZAREZ (3,;)
                D_VIT_ZAGRADA (4,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        LOAD R0, (R7-4)         ; load variable x
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program6.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int a;
    int b;
    int result;
    a = 15;
    b = 3;
    result = a / b;
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                a
     7   TOCKAZAREZ         ;
     8   IDN                b
     9   IDN                result
     10   OP_PRIDRUZI        =
     11   BROJ               15
     12   BROJ               3
     13   OP_DIJELI          /
     14   KR_RETURN          return
     15   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
IDN                    7       6
OP_DIJELI              7       13
IDN                    7       8
TOCKAZAREZ             7       7
KR_RETURN              8       14
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 15
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                OP_DIJELI , /
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 15
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                OP_DIJELI , /
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                IDN (2,a) [symbol=a]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            IDN (3,b) [symbol=b]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (4,result) [symbol=result]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,a) [symbol=a]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,15) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,b) [symbol=b]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,3) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,result) [symbol=result]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,a) [symbol=a]
                                                                                OP_DIJELI (7,/)
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (7,b) [symbol=b]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,result) [symbol=result]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable a at (R7-4)
; Local variable b at (R7-8)
; Local variable result at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 15, R0             ; load constant 15
        STORE R0, (R7-4)        ; assign to a
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-8)        ; assign to b
        LOAD R0, (R7-4)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Division not implemented (TODO)
        STORE R0, (R7-12)       ; assign to result
        LOAD R0, (R7-12)        ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program60.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int find_max(int arr[], int n) {
    int i;
    int max_val;
    max_val = arr[0];
    for (i = 1; i < n; i = i + 1) {
        if (arr[i] > max_val) {
            max_val = arr[i];
        }
    }
    return max_val;
}

int main(void) {
    int arr[5];
    arr[0] = 3;
    arr[1] = 7;
    arr[2] = 2;
    arr[3] = 9;
    arr[4] = 1;
    return find_max(arr, 5);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                find_max
     2   L_ZAGRADA          (
     3   IDN                arr
     4   L_UGL_ZAGRADA      [
     5   D_UGL_ZAGRADA      ]
     6   ZAREZ              ,
     7   IDN                n
     8   D_ZAGRADA          )
     9   L_VIT_ZAGRADA      {
     10   IDN                i
     11   TOCKAZAREZ         ;
     12   IDN                max_val
     13   OP_PRIDRUZI        =
     14   BROJ               0
     15   KR_FOR             for
     16   BROJ               1
     17   OP_LT              <
     18   PLUS               +
     19   KR_IF              if
     20   OP_GT              >
     21   D_VIT_ZAGRADA      }
     22   KR_RETURN          return
     23   IDN                main
     24   KR_VOID            void
     25   BROJ               5
     26   BROJ               3
     27   BROJ               7
     28   BROJ               2
     29   BROJ               9
     30   BROJ               4

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
L_UGL_ZAGRADA          1       4
D_UGL_ZAGRADA          1       5
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       7
D_ZAGRADA              1       8
L_VIT_ZAGRADA          1       9
KR_INT                 2       0
IDN                    2       10
TOCKAZAREZ             2       11
KR_INT                 3       0
IDN                    3       12
TOCKAZAREZ             3       11
IDN                    4       12
OP_PRIDRUZI            4       13
IDN                    4       3
L_UGL_ZAGRADA          4       4
BROJ                   4       14
D_UGL_ZAGRADA          4       5
TOCKAZAREZ             4       11
KR_FOR                 5       15
L_ZAGRADA              5       2
IDN                    5       10
OP_PRIDRUZI            5       13
BROJ                   5       16
TOCKAZAREZ             5       11
IDN                    5       10
OP_LT                  5       17
IDN                    5       7
TOCKAZAREZ             5       11
IDN                    5       10
OP_PRIDRUZI            5       13
IDN                    5       10
PLUS                   5       18
BROJ                   5       16
D_ZAGRADA              5       8
L_VIT_ZAGRADA          5       9
KR_IF                  6       19
L_ZAGRADA              6       2
IDN                    6       3
L_UGL_ZAGRADA          6       4
IDN                    6       10
D_UGL_ZAGRADA          6       5
OP_GT                  6       20
IDN                    6       12
D_ZAGRADA              6       8
L_VIT_ZAGRADA          6       9
IDN                    7       12
OP_PRIDRUZI            7       13
IDN                    7       3
L_UGL_ZAGRADA          7       4
IDN                    7       10
D_UGL_ZAGRADA          7       5
TOCKAZAREZ             7       11
D_VIT_ZAGRADA          8       21
D_VIT_ZAGRADA          9       21
KR_RETURN             10       22
IDN                   10       12
TOCKAZAREZ            10       11
D_VIT_ZAGRADA         11       21
KR_INT                13       0
IDN                   13       23
L_ZAGRADA             13       2
KR_VOID               13       24
D_ZAGRADA             13       8
L_VIT_ZAGRADA         13       9
KR_INT                14       0
IDN                   14       3
L_UGL_ZAGRADA         14       4
BROJ                  14       25
D_UGL_ZAGRADA         14       5
TOCKAZAREZ            14       11
IDN                   15       3
L_UGL_ZAGRADA         15       4
BROJ                  15       14
D_UGL_ZAGRADA         15       5
OP_PRIDRUZI           15       13
BROJ                  15       26
TOCKAZAREZ            15       11
IDN                   16       3
L_UGL_ZAGRADA         16       4
BROJ                  16       16
D_UGL_ZAGRADA         16       5
OP_PRIDRUZI           16       13
BROJ                  16       27
TOCKAZAREZ            16       11
IDN                   17       3
L_UGL_ZAGRADA         17       4
BROJ                  17       28
D_UGL_ZAGRADA         17       5
OP_PRIDRUZI           17       13
BROJ                  17       28
TOCKAZAREZ            17       11
IDN                   18       3
L_UGL_ZAGRADA         18       4
BROJ                  18       26
D_UGL_ZAGRADA         18       5
OP_PRIDRUZI           18       13
BROJ                  18       29
TOCKAZAREZ            18       11
IDN                   19       3
L_UGL_ZAGRADA         19       4
BROJ                  19       30
D_UGL_ZAGRADA         19       5
OP_PRIDRUZI           19       13
BROJ                  19       16
TOCKAZAREZ            19       11
KR_RETURN             20       22
IDN                   20       1
L_ZAGRADA             20       2
IDN                   20       3
ZAREZ                 20       6
BROJ                  20       25
D_ZAGRADA             20       8
TOCKAZAREZ            20       11
D_VIT_ZAGRADA         21       21
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , find_max
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            D_UGL_ZAGRADA , ]
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , i
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , max_val
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , max_val
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , arr
                                                                                                    L_UGL_ZAGRADA , [
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                BROJ , 0
                                                                                                    D_UGL_ZAGRADA , ]
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 1
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , arr
                                                                                                                    L_UGL_ZAGRADA , [
                                                                                                                    <izraz>
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , i
                                                                                                                    D_UGL_ZAGRADA , ]
                                                                                            OP_GT , >
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , max_val
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <izraz_naredba>
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , max_val
                                                                                    OP_PRIDRUZI , =
                                                                                    <izraz_pridruzivanja>
                                                                                        <log_ili_izraz>
                                                                                            <log_i_izraz>
                                                                                                <bin_ili_izraz>
                                                                                                    <bin_xili_izraz>
                                                                                                        <bin_i_izraz>
                                                                                                            <jednakosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , arr
                                                                                                                                        L_UGL_ZAGRADA , [
                                                                                                                                        <izraz>
                                                                                                                                            <izraz_pridruzivanja>
                                                                                                                                                <log_ili_izraz>
                                                                                                                                                    <log_i_izraz>
                                                                                                                                                        <bin_ili_izraz>
                                                                                                                                                            <bin_xili_izraz>
                                                                                                                                                                <bin_i_izraz>
                                                                                                                                                                    <jednakosni_izraz>
                                                                                                                                                                        <odnosni_izraz>
                                                                                                                                                                            <aditivni_izraz>
                                                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                                                    <cast_izraz>
                                                                                                                                                                                        <unarni_izraz>
                                                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                                                    IDN , i
                                                                                                                                        D_UGL_ZAGRADA , ]
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , max_val
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 7
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 9
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , find_max
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , arr
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , find_max
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            D_UGL_ZAGRADA , ]
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , i
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , max_val
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , max_val
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , arr
                                                                                                    L_UGL_ZAGRADA , [
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                BROJ , 0
                                                                                                    D_UGL_ZAGRADA , ]
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 1
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , arr
                                                                                                                    L_UGL_ZAGRADA , [
                                                                                                                    <izraz>
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , i
                                                                                                                    D_UGL_ZAGRADA , ]
                                                                                            OP_GT , >
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , max_val
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <izraz_naredba>
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , max_val
                                                                                    OP_PRIDRUZI , =
                                                                                    <izraz_pridruzivanja>
                                                                                        <log_ili_izraz>
                                                                                            <log_i_izraz>
                                                                                                <bin_ili_izraz>
                                                                                                    <bin_xili_izraz>
                                                                                                        <bin_i_izraz>
                                                                                                            <jednakosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , arr
                                                                                                                                        L_UGL_ZAGRADA , [
                                                                                                                                        <izraz>
                                                                                                                                            <izraz_pridruzivanja>
                                                                                                                                                <log_ili_izraz>
                                                                                                                                                    <log_i_izraz>
                                                                                                                                                        <bin_ili_izraz>
                                                                                                                                                            <bin_xili_izraz>
                                                                                                                                                                <bin_i_izraz>
                                                                                                                                                                    <jednakosni_izraz>
                                                                                                                                                                        <odnosni_izraz>
                                                                                                                                                                            <aditivni_izraz>
                                                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                                                    <cast_izraz>
                                                                                                                                                                                        <unarni_izraz>
                                                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                                                    IDN , i
                                                                                                                                        D_UGL_ZAGRADA , ]
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , max_val
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 7
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 9
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , find_max
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , arr
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  find_max : INT (array(INT), INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    arr : array(INT)
    i : INT
    max_val : INT
    n : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

  Nested Scope 2:
    arr : array(INT)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(array(INT), INT), lvalue=false, id=find_max, elements=0]
                    <<izravni_deklarator>> [type=INT(array(INT), INT), lvalue=false, id=find_max, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=find_max, elements=0]
                            IDN (1,find_max) [symbol=find_max]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                        <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                                IDN (1,arr) [symbol=arr]
                                            L_UGL_ZAGRADA (1,[)
                                            D_UGL_ZAGRADA (1,])
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                                IDN (2,i) [symbol=i]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=max_val, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=max_val, elements=0]
                                            IDN (3,max_val) [symbol=max_val]
                            TOCKAZAREZ (3,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,max_val) [symbol=max_val]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            IDN (4,arr) [symbol=arr]
                                                                                                    L_UGL_ZAGRADA (4,[)
                                                                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                BROJ (4,0) [type=int]
                                                                                                    D_UGL_ZAGRADA (4,])
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_petlje>> [lvalue=false, elements=0]
                                    KR_FOR (5,for)
                                    L_ZAGRADA (5,()
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,i) [symbol=i]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,1) [type=int]
                                        TOCKAZAREZ (5,;)
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (5,i) [symbol=i]
                                                                            OP_LT (5,<)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (5,n) [symbol=n]
                                        TOCKAZAREZ (5,;)
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,i) [symbol=i]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (5,i) [symbol=i]
                                                                                PLUS (5,+)
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,1) [type=int]
                                    D_ZAGRADA (5,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (5,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                        KR_IF (6,if)
                                                        L_ZAGRADA (6,()
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            IDN (6,arr) [symbol=arr]
                                                                                                                    L_UGL_ZAGRADA (6,[)
                                                                                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                IDN (6,i) [symbol=i]
                                                                                                                    D_UGL_ZAGRADA (6,])
                                                                                            OP_GT (6,>)
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (6,max_val) [symbol=max_val]
                                                        D_ZAGRADA (6,))
                                                        <<naredba>> [lvalue=false, elements=0]
                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                L_VIT_ZAGRADA (6,{)
                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (7,max_val) [symbol=max_val]
                                                                                    OP_PRIDRUZI (7,=)
                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                IDN (7,arr) [symbol=arr]
                                                                                                                                        L_UGL_ZAGRADA (7,[)
                                                                                                                                        <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                                    IDN (7,i) [symbol=i]
                                                                                                                                        D_UGL_ZAGRADA (7,])
                                                                            TOCKAZAREZ (7,;)
                                                                D_VIT_ZAGRADA (8,})
                                            D_VIT_ZAGRADA (9,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (10,return)
                                <<izraz>> [type=INT, lvalue=true, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (10,max_val) [symbol=max_val]
                                TOCKAZAREZ (10,;)
                    D_VIT_ZAGRADA (11,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (13,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (13,main) [symbol=main]
                    L_ZAGRADA (13,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (13,void)
                    D_ZAGRADA (13,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (13,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (14,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                    <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                            IDN (14,arr) [symbol=arr]
                                        L_UGL_ZAGRADA (14,[)
                                        <<log_ili_izraz>> [lvalue=false, elements=0]
                                            <<log_i_izraz>> [lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [lvalue=false, elements=0]
                                                                            <<cast_izraz>> [lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [lvalue=false, elements=0]
                                                                                            BROJ (14,5) [type=int]
                                        D_UGL_ZAGRADA (14,])
                        TOCKAZAREZ (14,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<lista_naredbi>> [lvalue=false, elements=0]
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                        IDN (15,arr) [symbol=arr]
                                                                L_UGL_ZAGRADA (15,[)
                                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (15,0) [type=int]
                                                                D_UGL_ZAGRADA (15,])
                                                        OP_PRIDRUZI (15,=)
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (15,3) [type=int]
                                                TOCKAZAREZ (15,;)
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    IDN (16,arr) [symbol=arr]
                                                            L_UGL_ZAGRADA (16,[)
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (16,1) [type=int]
                                                            D_UGL_ZAGRADA (16,])
                                                    OP_PRIDRUZI (16,=)
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (16,7) [type=int]
                                            TOCKAZAREZ (16,;)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                IDN (17,arr) [symbol=arr]
                                                        L_UGL_ZAGRADA (17,[)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (17,2) [type=int]
                                                        D_UGL_ZAGRADA (17,])
                                                OP_PRIDRUZI (17,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (17,2) [type=int]
                                        TOCKAZAREZ (17,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            IDN (18,arr) [symbol=arr]
                                                    L_UGL_ZAGRADA (18,[)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (18,3) [type=int]
                                                    D_UGL_ZAGRADA (18,])
                                            OP_PRIDRUZI (18,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (18,9) [type=int]
                                    TOCKAZAREZ (18,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        IDN (19,arr) [symbol=arr]
                                                L_UGL_ZAGRADA (19,[)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (19,4) [type=int]
                                                D_UGL_ZAGRADA (19,])
                                        OP_PRIDRUZI (19,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (19,1) [type=int]
                                TOCKAZAREZ (19,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (20,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                            IDN (20,find_max) [symbol=find_max]
                                                                                    L_ZAGRADA (20,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    IDN (20,arr) [symbol=arr]
                                                                                        ZAREZ (20,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (20,5) [type=int]
                                                                                    D_ZAGRADA (20,))
                            TOCKAZAREZ (20,;)
                D_VIT_ZAGRADA (21,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_FIND_MAX                      ; Function find_max
; Parameter arr at (R7+8)
; Parameter n at (R7+12)
; Local variable i at (R7-4)
; Local variable max_val at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
; Complex postfix expression (TODO)
        LOAD R0, (R7+8)         ; load variable arr
        STORE R0, (R7-8)        ; assign to max_val
; For loop with increment (TODO)
        LOAD R0, (R7-8)         ; load variable max_val
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from find_max

F_MAIN                          ; Function main
; Local variable arr at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-4)        ; assign to arr
        MOVE 7, R0              ; load constant 7
        STORE R0, (R7-4)        ; assign to arr
        MOVE 2, R0              ; load constant 2
        STORE R0, (R7-4)        ; assign to arr
        MOVE 9, R0              ; load constant 9
        STORE R0, (R7-4)        ; assign to arr
        MOVE 1, R0              ; load constant 1
        STORE R0, (R7-4)        ; assign to arr
; Function call: find_max
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_FIND_MAX         ; call find_max
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program61.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int linear_search(int arr[], int n, int key) {
    int i;
    for (i = 0; i < n; i = i + 1) {
        if (arr[i] == key) {
            return i;
        }
    }
    return -1;
}

int main(void) {
    int arr[5];
    arr[0] = 10;
    arr[1] = 20;
    arr[2] = 30;
    arr[3] = 40;
    arr[4] = 50;
    return linear_search(arr, 5, 30);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                linear_search
     2   L_ZAGRADA          (
     3   IDN                arr
     4   L_UGL_ZAGRADA      [
     5   D_UGL_ZAGRADA      ]
     6   ZAREZ              ,
     7   IDN                n
     8   IDN                key
     9   D_ZAGRADA          )
     10   L_VIT_ZAGRADA      {
     11   IDN                i
     12   TOCKAZAREZ         ;
     13   KR_FOR             for
     14   OP_PRIDRUZI        =
     15   BROJ               0
     16   OP_LT              <
     17   PLUS               +
     18   BROJ               1
     19   KR_IF              if
     20   OP_EQ              ==
     21   KR_RETURN          return
     22   D_VIT_ZAGRADA      }
     23   MINUS              -
     24   IDN                main
     25   KR_VOID            void
     26   BROJ               5
     27   BROJ               10
     28   BROJ               20
     29   BROJ               2
     30   BROJ               30
     31   BROJ               3
     32   BROJ               40
     33   BROJ               4
     34   BROJ               50

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
L_UGL_ZAGRADA          1       4
D_UGL_ZAGRADA          1       5
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       7
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       8
D_ZAGRADA              1       9
L_VIT_ZAGRADA          1       10
KR_INT                 2       0
IDN                    2       11
TOCKAZAREZ             2       12
KR_FOR                 3       13
L_ZAGRADA              3       2
IDN                    3       11
OP_PRIDRUZI            3       14
BROJ                   3       15
TOCKAZAREZ             3       12
IDN                    3       11
OP_LT                  3       16
IDN                    3       7
TOCKAZAREZ             3       12
IDN                    3       11
OP_PRIDRUZI            3       14
IDN                    3       11
PLUS                   3       17
BROJ                   3       18
D_ZAGRADA              3       9
L_VIT_ZAGRADA          3       10
KR_IF                  4       19
L_ZAGRADA              4       2
IDN                    4       3
L_UGL_ZAGRADA          4       4
IDN                    4       11
D_UGL_ZAGRADA          4       5
OP_EQ                  4       20
IDN                    4       8
D_ZAGRADA              4       9
L_VIT_ZAGRADA          4       10
KR_RETURN              5       21
IDN                    5       11
TOCKAZAREZ             5       12
D_VIT_ZAGRADA          6       22
D_VIT_ZAGRADA          7       22
KR_RETURN              8       21
MINUS                  8       23
BROJ                   8       18
TOCKAZAREZ             8       12
D_VIT_ZAGRADA          9       22
KR_INT                11       0
IDN                   11       24
L_ZAGRADA             11       2
KR_VOID               11       25
D_ZAGRADA             11       9
L_VIT_ZAGRADA         11       10
KR_INT                12       0
IDN                   12       3
L_UGL_ZAGRADA         12       4
BROJ                  12       26
D_UGL_ZAGRADA         12       5
TOCKAZAREZ            12       12
IDN                   13       3
L_UGL_ZAGRADA         13       4
BROJ                  13       15
D_UGL_ZAGRADA         13       5
OP_PRIDRUZI           13       14
BROJ                  13       27
TOCKAZAREZ            13       12
IDN                   14       3
L_UGL_ZAGRADA         14       4
BROJ                  14       18
D_UGL_ZAGRADA         14       5
OP_PRIDRUZI           14       14
BROJ                  14       28
TOCKAZAREZ            14       12
IDN                   15       3
L_UGL_ZAGRADA         15       4
BROJ                  15       29
D_UGL_ZAGRADA         15       5
OP_PRIDRUZI           15       14
BROJ                  15       30
TOCKAZAREZ            15       12
IDN                   16       3
L_UGL_ZAGRADA         16       4
BROJ                  16       31
D_UGL_ZAGRADA         16       5
OP_PRIDRUZI           16       14
BROJ                  16       32
TOCKAZAREZ            16       12
IDN                   17       3
L_UGL_ZAGRADA         17       4
BROJ                  17       33
D_UGL_ZAGRADA         17       5
OP_PRIDRUZI           17       14
BROJ                  17       34
TOCKAZAREZ            17       12
KR_RETURN             18       21
IDN                   18       1
L_ZAGRADA             18       2
IDN                   18       3
ZAREZ                 18       6
BROJ                  18       26
ZAREZ                 18       6
BROJ                  18       30
D_ZAGRADA             18       9
TOCKAZAREZ            18       12
D_VIT_ZAGRADA         19       22
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , linear_search
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , arr
                                                L_UGL_ZAGRADA , [
                                                D_UGL_ZAGRADA , ]
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , n
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , key
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , arr
                                                                                                                    L_UGL_ZAGRADA , [
                                                                                                                    <izraz>
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , i
                                                                                                                    D_UGL_ZAGRADA , ]
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , key
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_RETURN , return
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        IDN , i
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <unarni_operator>
                                                                                        MINUS , -
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 10
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 20
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 30
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 40
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 50
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , linear_search
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , arr
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 5
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 30
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , linear_search
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , arr
                                                L_UGL_ZAGRADA , [
                                                D_UGL_ZAGRADA , ]
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , n
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , key
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , arr
                                                                                                                    L_UGL_ZAGRADA , [
                                                                                                                    <izraz>
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , i
                                                                                                                    D_UGL_ZAGRADA , ]
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , key
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_RETURN , return
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        IDN , i
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <unarni_operator>
                                                                                        MINUS , -
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 10
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 20
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 30
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 40
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 50
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , linear_search
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , arr
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 5
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 30
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  linear_search : INT (array(INT), INT, INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    arr : array(INT)
    i : INT
    key : INT
    n : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

  Nested Scope 2:
    arr : array(INT)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(array(INT), INT, INT), lvalue=false, id=linear_search, elements=0]
                    <<izravni_deklarator>> [type=INT(array(INT), INT, INT), lvalue=false, id=linear_search, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=linear_search, elements=0]
                            IDN (1,linear_search) [symbol=linear_search]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<lista_parametara>> [lvalue=false, elements=0]
                                    <<deklaracija_parametra>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                                KR_INT (1,int)
                                        <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                            <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                                <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                                    IDN (1,arr) [symbol=arr]
                                                L_UGL_ZAGRADA (1,[)
                                                D_UGL_ZAGRADA (1,])
                                ZAREZ (1,,)
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                            IDN (1,n) [symbol=n]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=key, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=key, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=key, elements=0]
                                        IDN (1,key) [symbol=key]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            IDN (2,i) [symbol=i]
                            TOCKAZAREZ (2,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_petlje>> [lvalue=false, elements=0]
                                    KR_FOR (3,for)
                                    L_ZAGRADA (3,()
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (3,i) [symbol=i]
                                                OP_PRIDRUZI (3,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (3,0) [type=int]
                                        TOCKAZAREZ (3,;)
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (3,i) [symbol=i]
                                                                            OP_LT (3,<)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,n) [symbol=n]
                                        TOCKAZAREZ (3,;)
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (3,i) [symbol=i]
                                                                                PLUS (3,+)
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,1) [type=int]
                                    D_ZAGRADA (3,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (3,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                        KR_IF (4,if)
                                                        L_ZAGRADA (4,()
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            IDN (4,arr) [symbol=arr]
                                                                                                                    L_UGL_ZAGRADA (4,[)
                                                                                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                IDN (4,i) [symbol=i]
                                                                                                                    D_UGL_ZAGRADA (4,])
                                                                                        OP_EQ (4,==)
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (4,key) [symbol=key]
                                                        D_ZAGRADA (4,))
                                                        <<naredba>> [lvalue=false, elements=0]
                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                L_VIT_ZAGRADA (4,{)
                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                                            KR_RETURN (5,return)
                                                                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        IDN (5,i) [symbol=i]
                                                                            TOCKAZAREZ (5,;)
                                                                D_VIT_ZAGRADA (6,})
                                            D_VIT_ZAGRADA (7,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (8,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_operator>> [lvalue=false, elements=0]
                                                                                        MINUS (8,-)
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (8,1) [type=int]
                                TOCKAZAREZ (8,;)
                    D_VIT_ZAGRADA (9,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (11,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (11,main) [symbol=main]
                    L_ZAGRADA (11,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (11,void)
                    D_ZAGRADA (11,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (11,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (12,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                    <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                            IDN (12,arr) [symbol=arr]
                                        L_UGL_ZAGRADA (12,[)
                                        <<log_ili_izraz>> [lvalue=false, elements=0]
                                            <<log_i_izraz>> [lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [lvalue=false, elements=0]
                                                                            <<cast_izraz>> [lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [lvalue=false, elements=0]
                                                                                            BROJ (12,5) [type=int]
                                        D_UGL_ZAGRADA (12,])
                        TOCKAZAREZ (12,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<lista_naredbi>> [lvalue=false, elements=0]
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                        IDN (13,arr) [symbol=arr]
                                                                L_UGL_ZAGRADA (13,[)
                                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (13,0) [type=int]
                                                                D_UGL_ZAGRADA (13,])
                                                        OP_PRIDRUZI (13,=)
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (13,10) [type=int]
                                                TOCKAZAREZ (13,;)
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    IDN (14,arr) [symbol=arr]
                                                            L_UGL_ZAGRADA (14,[)
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (14,1) [type=int]
                                                            D_UGL_ZAGRADA (14,])
                                                    OP_PRIDRUZI (14,=)
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (14,20) [type=int]
                                            TOCKAZAREZ (14,;)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                IDN (15,arr) [symbol=arr]
                                                        L_UGL_ZAGRADA (15,[)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (15,2) [type=int]
                                                        D_UGL_ZAGRADA (15,])
                                                OP_PRIDRUZI (15,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (15,30) [type=int]
                                        TOCKAZAREZ (15,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            IDN (16,arr) [symbol=arr]
                                                    L_UGL_ZAGRADA (16,[)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (16,3) [type=int]
                                                    D_UGL_ZAGRADA (16,])
                                            OP_PRIDRUZI (16,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (16,40) [type=int]
                                    TOCKAZAREZ (16,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        IDN (17,arr) [symbol=arr]
                                                L_UGL_ZAGRADA (17,[)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (17,4) [type=int]
                                                D_UGL_ZAGRADA (17,])
                                        OP_PRIDRUZI (17,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (17,50) [type=int]
                                TOCKAZAREZ (17,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (18,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(array(INT), INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(array(INT), INT, INT), lvalue=false, elements=0]
                                                                                            IDN (18,linear_search) [symbol=linear_search]
                                                                                    L_ZAGRADA (18,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                        IDN (18,arr) [symbol=arr]
                                                                                            ZAREZ (18,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (18,5) [type=int]
                                                                                        ZAREZ (18,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (18,30) [type=int]
                                                                                    D_ZAGRADA (18,))
                            TOCKAZAREZ (18,;)
                D_VIT_ZAGRADA (19,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_LINEAR_SEARCH                 ; Function linear_search
; Parameter arr at (R7+8)
; Parameter n at (R7+12)
; Parameter key at (R7+16)
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from linear_search

F_MAIN                          ; Function main
; Local variable arr at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-4)        ; assign to arr
        MOVE 20, R0             ; load constant 20
        STORE R0, (R7-4)        ; assign to arr
        MOVE 30, R0             ; load constant 30
        STORE R0, (R7-4)        ; assign to arr
        MOVE 40, R0             ; load constant 40
        STORE R0, (R7-4)        ; assign to arr
        MOVE 50, R0             ; load constant 50
        STORE R0, (R7-4)        ; assign to arr
; Function call: linear_search
        MOVE 30, R0             ; load constant 30
        PUSH R0                 ; push argument 3
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_LINEAR_SEARCH    ; call linear_search
        ADD R7, 12, R7          ; cleanup 3 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program62.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int binary_search_recursive(int arr[], int left, int right, int key) {
    int mid;
    if (left > right) {
        return -1;
    }
    mid = (left + right) / 2;
    if (arr[mid] == key) {
        return mid;
    }
    if (arr[mid] > key) {
        return binary_search_recursive(arr, left, mid - 1, key);
    }
    return binary_search_recursive(arr, mid + 1, right, key);
}

int main(void) {
    int arr[5];
    arr[0] = 1;
    arr[1] = 3;
    arr[2] = 5;
    arr[3] = 7;
    arr[4] = 9;
    return binary_search_recursive(arr, 0, 4, 5);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                binary_search_recursive
     2   L_ZAGRADA          (
     3   IDN                arr
     4   L_UGL_ZAGRADA      [
     5   D_UGL_ZAGRADA      ]
     6   ZAREZ              ,
     7   IDN                left
     8   IDN                right
     9   IDN                key
     10   D_ZAGRADA          )
     11   L_VIT_ZAGRADA      {
     12   IDN                mid
     13   TOCKAZAREZ         ;
     14   KR_IF              if
     15   OP_GT              >
     16   KR_RETURN          return
     17   MINUS              -
     18   BROJ               1
     19   D_VIT_ZAGRADA      }
     20   OP_PRIDRUZI        =
     21   PLUS               +
     22   OP_DIJELI          /
     23   BROJ               2
     24   OP_EQ              ==
     25   IDN                main
     26   KR_VOID            void
     27   BROJ               5
     28   BROJ               0
     29   BROJ               3
     30   BROJ               7
     31   BROJ               4
     32   BROJ               9

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
L_UGL_ZAGRADA          1       4
D_UGL_ZAGRADA          1       5
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       7
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       8
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       9
D_ZAGRADA              1       10
L_VIT_ZAGRADA          1       11
KR_INT                 2       0
IDN                    2       12
TOCKAZAREZ             2       13
KR_IF                  3       14
L_ZAGRADA              3       2
IDN                    3       7
OP_GT                  3       15
IDN                    3       8
D_ZAGRADA              3       10
L_VIT_ZAGRADA          3       11
KR_RETURN              4       16
MINUS                  4       17
BROJ                   4       18
TOCKAZAREZ             4       13
D_VIT_ZAGRADA          5       19
IDN                    6       12
OP_PRIDRUZI            6       20
L_ZAGRADA              6       2
IDN                    6       7
PLUS                   6       21
IDN                    6       8
D_ZAGRADA              6       10
OP_DIJELI              6       22
BROJ                   6       23
TOCKAZAREZ             6       13
KR_IF                  7       14
L_ZAGRADA              7       2
IDN                    7       3
L_UGL_ZAGRADA          7       4
IDN                    7       12
D_UGL_ZAGRADA          7       5
OP_EQ                  7       24
IDN                    7       9
D_ZAGRADA              7       10
L_VIT_ZAGRADA          7       11
KR_RETURN              8       16
IDN                    8       12
TOCKAZAREZ             8       13
D_VIT_ZAGRADA          9       19
KR_IF                 10       14
L_ZAGRADA             10       2
IDN                   10       3
L_UGL_ZAGRADA         10       4
IDN                   10       12
D_UGL_ZAGRADA         10       5
OP_GT                 10       15
IDN                   10       9
D_ZAGRADA             10       10
L_VIT_ZAGRADA         10       11
KR_RETURN             11       16
IDN                   11       1
L_ZAGRADA             11       2
IDN                   11       3
ZAREZ                 11       6
IDN                   11       7
ZAREZ                 11       6
IDN                   11       12
MINUS                 11       17
BROJ                  11       18
ZAREZ                 11       6
IDN                   11       9
D_ZAGRADA             11       10
TOCKAZAREZ            11       13
D_VIT_ZAGRADA         12       19
KR_RETURN             13       16
IDN                   13       1
L_ZAGRADA             13       2
IDN                   13       3
ZAREZ                 13       6
IDN                   13       12
PLUS                  13       21
BROJ                  13       18
ZAREZ                 13       6
IDN                   13       8
ZAREZ                 13       6
IDN                   13       9
D_ZAGRADA             13       10
TOCKAZAREZ            13       13
D_VIT_ZAGRADA         14       19
KR_INT                16       0
IDN                   16       25
L_ZAGRADA             16       2
KR_VOID               16       26
D_ZAGRADA             16       10
L_VIT_ZAGRADA         16       11
KR_INT                17       0
IDN                   17       3
L_UGL_ZAGRADA         17       4
BROJ                  17       27
D_UGL_ZAGRADA         17       5
TOCKAZAREZ            17       13
IDN                   18       3
L_UGL_ZAGRADA         18       4
BROJ                  18       28
D_UGL_ZAGRADA         18       5
OP_PRIDRUZI           18       20
BROJ                  18       18
TOCKAZAREZ            18       13
IDN                   19       3
L_UGL_ZAGRADA         19       4
BROJ                  19       18
D_UGL_ZAGRADA         19       5
OP_PRIDRUZI           19       20
BROJ                  19       29
TOCKAZAREZ            19       13
IDN                   20       3
L_UGL_ZAGRADA         20       4
BROJ                  20       23
D_UGL_ZAGRADA         20       5
OP_PRIDRUZI           20       20
BROJ                  20       27
TOCKAZAREZ            20       13
IDN                   21       3
L_UGL_ZAGRADA         21       4
BROJ                  21       29
D_UGL_ZAGRADA         21       5
OP_PRIDRUZI           21       20
BROJ                  21       30
TOCKAZAREZ            21       13
IDN                   22       3
L_UGL_ZAGRADA         22       4
BROJ                  22       31
D_UGL_ZAGRADA         22       5
OP_PRIDRUZI           22       20
BROJ                  22       32
TOCKAZAREZ            22       13
KR_RETURN             23       16
IDN                   23       1
L_ZAGRADA             23       2
IDN                   23       3
ZAREZ                 23       6
BROJ                  23       28
ZAREZ                 23       6
BROJ                  23       31
ZAREZ                 23       6
BROJ                  23       27
D_ZAGRADA             23       10
TOCKAZAREZ            23       13
D_VIT_ZAGRADA         24       19
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , binary_search_recursive
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <lista_parametara>
                                        <deklaracija_parametra>
                                            <specifikatori_deklaracije>
                                                <specifikator_tipa>
                                                    KR_INT , int
                                            <deklarator>
                                                <izravni_deklarator>
                                                    <izravni_deklarator>
                                                        IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    D_UGL_ZAGRADA , ]
                                    ZAREZ , ,
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , left
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , right
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , key
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , mid
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_grananja>
                                                KR_IF , if
                                                L_ZAGRADA , (
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , left
                                                                                    OP_GT , >
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , right
                                                D_ZAGRADA , )
                                                <naredba>
                                                    <slozena_naredba>
                                                        L_VIT_ZAGRADA , {
                                                        <lista_naredbi>
                                                            <naredba>
                                                                <naredba_skoka>
                                                                    KR_RETURN , return
                                                                    <izraz>
                                                                        <izraz_pridruzivanja>
                                                                            <log_ili_izraz>
                                                                                <log_i_izraz>
                                                                                    <bin_ili_izraz>
                                                                                        <bin_xili_izraz>
                                                                                            <bin_i_izraz>
                                                                                                <jednakosni_izraz>
                                                                                                    <odnosni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <unarni_operator>
                                                                                                                            MINUS , -
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 1
                                                                    TOCKAZAREZ , ;
                                                        D_VIT_ZAGRADA , }
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , mid
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                L_ZAGRADA , (
                                                                                                                <izraz>
                                                                                                                    <izraz_pridruzivanja>
                                                                                                                        <log_ili_izraz>
                                                                                                                            <log_i_izraz>
                                                                                                                                <bin_ili_izraz>
                                                                                                                                    <bin_xili_izraz>
                                                                                                                                        <bin_i_izraz>
                                                                                                                                            <jednakosni_izraz>
                                                                                                                                                <odnosni_izraz>
                                                                                                                                                    <aditivni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , left
                                                                                                                                                        PLUS , +
                                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                                            <cast_izraz>
                                                                                                                                                                <unarni_izraz>
                                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                                        <primarni_izraz>
                                                                                                                                                                            IDN , right
                                                                                                                D_ZAGRADA , )
                                                                                            OP_DIJELI , /
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <naredba_grananja>
                                        KR_IF , if
                                        L_ZAGRADA , (
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , arr
                                                                                                    L_UGL_ZAGRADA , [
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , mid
                                                                                                    D_UGL_ZAGRADA , ]
                                                                        OP_EQ , ==
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , key
                                        D_ZAGRADA , )
                                        <naredba>
                                            <slozena_naredba>
                                                L_VIT_ZAGRADA , {
                                                <lista_naredbi>
                                                    <naredba>
                                                        <naredba_skoka>
                                                            KR_RETURN , return
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , mid
                                                            TOCKAZAREZ , ;
                                                D_VIT_ZAGRADA , }
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , arr
                                                                                                L_UGL_ZAGRADA , [
                                                                                                <izraz>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , mid
                                                                                                D_UGL_ZAGRADA , ]
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , key
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , binary_search_recursive
                                                                                                                L_ZAGRADA , (
                                                                                                                <lista_argumenata>
                                                                                                                    <lista_argumenata>
                                                                                                                        <lista_argumenata>
                                                                                                                            <lista_argumenata>
                                                                                                                                <izraz_pridruzivanja>
                                                                                                                                    <log_ili_izraz>
                                                                                                                                        <log_i_izraz>
                                                                                                                                            <bin_ili_izraz>
                                                                                                                                                <bin_xili_izraz>
                                                                                                                                                    <bin_i_izraz>
                                                                                                                                                        <jednakosni_izraz>
                                                                                                                                                            <odnosni_izraz>
                                                                                                                                                                <aditivni_izraz>
                                                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                                                        <cast_izraz>
                                                                                                                                                                            <unarni_izraz>
                                                                                                                                                                                <postfiks_izraz>
                                                                                                                                                                                    <primarni_izraz>
                                                                                                                                                                                        IDN , arr
                                                                                                                            ZAREZ , ,
                                                                                                                            <izraz_pridruzivanja>
                                                                                                                                <log_ili_izraz>
                                                                                                                                    <log_i_izraz>
                                                                                                                                        <bin_ili_izraz>
                                                                                                                                            <bin_xili_izraz>
                                                                                                                                                <bin_i_izraz>
                                                                                                                                                    <jednakosni_izraz>
                                                                                                                                                        <odnosni_izraz>
                                                                                                                                                            <aditivni_izraz>
                                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                                    <cast_izraz>
                                                                                                                                                                        <unarni_izraz>
                                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                                    IDN , left
                                                                                                                        ZAREZ , ,
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <aditivni_izraz>
                                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                                    <cast_izraz>
                                                                                                                                                                        <unarni_izraz>
                                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                                    IDN , mid
                                                                                                                                                            MINUS , -
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                BROJ , 1
                                                                                                                    ZAREZ , ,
                                                                                                                    <izraz_pridruzivanja>
                                                                                                                        <log_ili_izraz>
                                                                                                                            <log_i_izraz>
                                                                                                                                <bin_ili_izraz>
                                                                                                                                    <bin_xili_izraz>
                                                                                                                                        <bin_i_izraz>
                                                                                                                                            <jednakosni_izraz>
                                                                                                                                                <odnosni_izraz>
                                                                                                                                                    <aditivni_izraz>
                                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                                            <cast_izraz>
                                                                                                                                                                <unarni_izraz>
                                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                                        <primarni_izraz>
                                                                                                                                                                            IDN , key
                                                                                                                D_ZAGRADA , )
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , binary_search_recursive
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <lista_argumenata>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , arr
                                                                                                    ZAREZ , ,
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , mid
                                                                                                                                        PLUS , +
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , right
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , key
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 3
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 7
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 9
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , binary_search_recursive
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , arr
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 0
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 4
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , binary_search_recursive
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <lista_parametara>
                                        <deklaracija_parametra>
                                            <specifikatori_deklaracije>
                                                KR_INT , int
                                            <deklarator>
                                                <izravni_deklarator>
                                                    <izravni_deklarator>
                                                        IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    D_UGL_ZAGRADA , ]
                                    ZAREZ , ,
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , left
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , right
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , key
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , mid
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_grananja>
                                                KR_IF , if
                                                L_ZAGRADA , (
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , left
                                                                                    OP_GT , >
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , right
                                                D_ZAGRADA , )
                                                <naredba>
                                                    <slozena_naredba>
                                                        L_VIT_ZAGRADA , {
                                                        <lista_naredbi>
                                                            <naredba>
                                                                <naredba_skoka>
                                                                    KR_RETURN , return
                                                                    <izraz>
                                                                        <izraz_pridruzivanja>
                                                                            <log_ili_izraz>
                                                                                <log_i_izraz>
                                                                                    <bin_ili_izraz>
                                                                                        <bin_xili_izraz>
                                                                                            <bin_i_izraz>
                                                                                                <jednakosni_izraz>
                                                                                                    <odnosni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <unarni_operator>
                                                                                                                            MINUS , -
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 1
                                                                    TOCKAZAREZ , ;
                                                        D_VIT_ZAGRADA , }
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , mid
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                L_ZAGRADA , (
                                                                                                                <izraz>
                                                                                                                    <izraz_pridruzivanja>
                                                                                                                        <log_ili_izraz>
                                                                                                                            <log_i_izraz>
                                                                                                                                <bin_ili_izraz>
                                                                                                                                    <bin_xili_izraz>
                                                                                                                                        <bin_i_izraz>
                                                                                                                                            <jednakosni_izraz>
                                                                                                                                                <odnosni_izraz>
                                                                                                                                                    <aditivni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                IDN , left
                                                                                                                                                        PLUS , +
                                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                                            <cast_izraz>
                                                                                                                                                                <unarni_izraz>
                                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                                        <primarni_izraz>
                                                                                                                                                                            IDN , right
                                                                                                                D_ZAGRADA , )
                                                                                            OP_DIJELI , /
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <naredba_grananja>
                                        KR_IF , if
                                        L_ZAGRADA , (
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , arr
                                                                                                    L_UGL_ZAGRADA , [
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , mid
                                                                                                    D_UGL_ZAGRADA , ]
                                                                        OP_EQ , ==
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , key
                                        D_ZAGRADA , )
                                        <naredba>
                                            <slozena_naredba>
                                                L_VIT_ZAGRADA , {
                                                <lista_naredbi>
                                                    <naredba>
                                                        <naredba_skoka>
                                                            KR_RETURN , return
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , mid
                                                            TOCKAZAREZ , ;
                                                D_VIT_ZAGRADA , }
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , arr
                                                                                                L_UGL_ZAGRADA , [
                                                                                                <izraz>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , mid
                                                                                                D_UGL_ZAGRADA , ]
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , key
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , binary_search_recursive
                                                                                                                L_ZAGRADA , (
                                                                                                                <lista_argumenata>
                                                                                                                    <lista_argumenata>
                                                                                                                        <lista_argumenata>
                                                                                                                            <lista_argumenata>
                                                                                                                                <izraz_pridruzivanja>
                                                                                                                                    <log_ili_izraz>
                                                                                                                                        <log_i_izraz>
                                                                                                                                            <bin_ili_izraz>
                                                                                                                                                <bin_xili_izraz>
                                                                                                                                                    <bin_i_izraz>
                                                                                                                                                        <jednakosni_izraz>
                                                                                                                                                            <odnosni_izraz>
                                                                                                                                                                <aditivni_izraz>
                                                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                                                        <cast_izraz>
                                                                                                                                                                            <unarni_izraz>
                                                                                                                                                                                <postfiks_izraz>
                                                                                                                                                                                    <primarni_izraz>
                                                                                                                                                                                        IDN , arr
                                                                                                                            ZAREZ , ,
                                                                                                                            <izraz_pridruzivanja>
                                                                                                                                <log_ili_izraz>
                                                                                                                                    <log_i_izraz>
                                                                                                                                        <bin_ili_izraz>
                                                                                                                                            <bin_xili_izraz>
                                                                                                                                                <bin_i_izraz>
                                                                                                                                                    <jednakosni_izraz>
                                                                                                                                                        <odnosni_izraz>
                                                                                                                                                            <aditivni_izraz>
                                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                                    <cast_izraz>
                                                                                                                                                                        <unarni_izraz>
                                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                                    IDN , left
                                                                                                                        ZAREZ , ,
                                                                                                                        <izraz_pridruzivanja>
                                                                                                                            <log_ili_izraz>
                                                                                                                                <log_i_izraz>
                                                                                                                                    <bin_ili_izraz>
                                                                                                                                        <bin_xili_izraz>
                                                                                                                                            <bin_i_izraz>
                                                                                                                                                <jednakosni_izraz>
                                                                                                                                                    <odnosni_izraz>
                                                                                                                                                        <aditivni_izraz>
                                                                                                                                                            <aditivni_izraz>
                                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                                    <cast_izraz>
                                                                                                                                                                        <unarni_izraz>
                                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                                    IDN , mid
                                                                                                                                                            MINUS , -
                                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                                <cast_izraz>
                                                                                                                                                                    <unarni_izraz>
                                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                                BROJ , 1
                                                                                                                    ZAREZ , ,
                                                                                                                    <izraz_pridruzivanja>
                                                                                                                        <log_ili_izraz>
                                                                                                                            <log_i_izraz>
                                                                                                                                <bin_ili_izraz>
                                                                                                                                    <bin_xili_izraz>
                                                                                                                                        <bin_i_izraz>
                                                                                                                                            <jednakosni_izraz>
                                                                                                                                                <odnosni_izraz>
                                                                                                                                                    <aditivni_izraz>
                                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                                            <cast_izraz>
                                                                                                                                                                <unarni_izraz>
                                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                                        <primarni_izraz>
                                                                                                                                                                            IDN , key
                                                                                                                D_ZAGRADA , )
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , binary_search_recursive
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <lista_argumenata>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , arr
                                                                                                    ZAREZ , ,
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , mid
                                                                                                                                        PLUS , +
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , right
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , key
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , arr
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 3
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 3
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 7
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 9
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , binary_search_recursive
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , arr
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 0
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 4
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 5
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  binary_search_recursive : INT (array(INT), INT, INT, INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    arr : array(INT)
    key : INT
    left : INT
    mid : INT
    right : INT

    Nested Scope 1:
      (no symbols)

    Nested Scope 2:
      (no symbols)

    Nested Scope 3:
      (no symbols)

  Nested Scope 2:
    arr : array(INT)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(array(INT), INT, INT, INT), lvalue=false, id=binary_search_recursive, elements=0]
                    <<izravni_deklarator>> [type=INT(array(INT), INT, INT, INT), lvalue=false, id=binary_search_recursive, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=binary_search_recursive, elements=0]
                            IDN (1,binary_search_recursive) [symbol=binary_search_recursive]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<lista_parametara>> [lvalue=false, elements=0]
                                    <<lista_parametara>> [lvalue=false, elements=0]
                                        <<deklaracija_parametra>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                                    KR_INT (1,int)
                                            <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                                <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                                        IDN (1,arr) [symbol=arr]
                                                    L_UGL_ZAGRADA (1,[)
                                                    D_UGL_ZAGRADA (1,])
                                    ZAREZ (1,,)
                                    <<deklaracija_parametra>> [type=INT, lvalue=true, id=left, elements=0]
                                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                                KR_INT (1,int)
                                        <<deklarator>> [type=INT, lvalue=true, id=left, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=left, elements=0]
                                                IDN (1,left) [symbol=left]
                                ZAREZ (1,,)
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=right, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=right, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=right, elements=0]
                                            IDN (1,right) [symbol=right]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=key, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=key, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=key, elements=0]
                                        IDN (1,key) [symbol=key]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=mid, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=mid, elements=0]
                                            IDN (2,mid) [symbol=mid]
                            TOCKAZAREZ (2,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<lista_naredbi>> [lvalue=false, elements=0]
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<naredba_grananja>> [lvalue=false, elements=0]
                                                KR_IF (3,if)
                                                L_ZAGRADA (3,()
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                IDN (3,left) [symbol=left]
                                                                                    OP_GT (3,>)
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            IDN (3,right) [symbol=right]
                                                D_ZAGRADA (3,))
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                                        L_VIT_ZAGRADA (3,{)
                                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                                            <<naredba>> [lvalue=false, elements=0]
                                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                                    KR_RETURN (4,return)
                                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<unarni_operator>> [lvalue=false, elements=0]
                                                                                                                            MINUS (4,-)
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        BROJ (4,1) [type=int]
                                                                    TOCKAZAREZ (4,;)
                                                        D_VIT_ZAGRADA (5,})
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                IDN (6,mid) [symbol=mid]
                                                    OP_PRIDRUZI (6,=)
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                L_ZAGRADA (6,()
                                                                                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                IDN (6,left) [symbol=left]
                                                                                                                                                        PLUS (6,+)
                                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            IDN (6,right) [symbol=right]
                                                                                                                D_ZAGRADA (6,))
                                                                                            OP_DIJELI (6,/)
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (6,2) [type=int]
                                            TOCKAZAREZ (6,;)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                        KR_IF (7,if)
                                        L_ZAGRADA (7,()
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            IDN (7,arr) [symbol=arr]
                                                                                                    L_UGL_ZAGRADA (7,[)
                                                                                                    <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                IDN (7,mid) [symbol=mid]
                                                                                                    D_UGL_ZAGRADA (7,])
                                                                        OP_EQ (7,==)
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,key) [symbol=key]
                                        D_ZAGRADA (7,))
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                L_VIT_ZAGRADA (7,{)
                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                            KR_RETURN (8,return)
                                                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (8,mid) [symbol=mid]
                                                            TOCKAZAREZ (8,;)
                                                D_VIT_ZAGRADA (9,})
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (10,if)
                                    L_ZAGRADA (10,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        IDN (10,arr) [symbol=arr]
                                                                                                L_UGL_ZAGRADA (10,[)
                                                                                                <<izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            IDN (10,mid) [symbol=mid]
                                                                                                D_UGL_ZAGRADA (10,])
                                                                        OP_GT (10,>)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (10,key) [symbol=key]
                                    D_ZAGRADA (10,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (10,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (11,return)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT(array(INT), INT, INT, INT), lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT(array(INT), INT, INT, INT), lvalue=false, elements=0]
                                                                                                                        IDN (11,binary_search_recursive) [symbol=binary_search_recursive]
                                                                                                                L_ZAGRADA (11,()
                                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                                                <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                        <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                            <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                    <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                        <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                            <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                                        IDN (11,arr) [symbol=arr]
                                                                                                                            ZAREZ (11,,)
                                                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                    IDN (11,left) [symbol=left]
                                                                                                                        ZAREZ (11,,)
                                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                                    IDN (11,mid) [symbol=mid]
                                                                                                                                                            MINUS (11,-)
                                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                                                BROJ (11,1) [type=int]
                                                                                                                    ZAREZ (11,,)
                                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                            IDN (11,key) [symbol=key]
                                                                                                                D_ZAGRADA (11,))
                                                        TOCKAZAREZ (11,;)
                                            D_VIT_ZAGRADA (12,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (13,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(array(INT), INT, INT, INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(array(INT), INT, INT, INT), lvalue=false, elements=0]
                                                                                                IDN (13,binary_search_recursive) [symbol=binary_search_recursive]
                                                                                        L_ZAGRADA (13,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                        <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                                IDN (13,arr) [symbol=arr]
                                                                                                    ZAREZ (13,,)
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                IDN (13,mid) [symbol=mid]
                                                                                                                                        PLUS (13,+)
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            BROJ (13,1) [type=int]
                                                                                                ZAREZ (13,,)
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (13,right) [symbol=right]
                                                                                            ZAREZ (13,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    IDN (13,key) [symbol=key]
                                                                                        D_ZAGRADA (13,))
                                TOCKAZAREZ (13,;)
                    D_VIT_ZAGRADA (14,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (16,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (16,main) [symbol=main]
                    L_ZAGRADA (16,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (16,void)
                    D_ZAGRADA (16,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (16,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (17,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                    <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=5]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                            IDN (17,arr) [symbol=arr]
                                        L_UGL_ZAGRADA (17,[)
                                        <<log_ili_izraz>> [lvalue=false, elements=0]
                                            <<log_i_izraz>> [lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [lvalue=false, elements=0]
                                                                            <<cast_izraz>> [lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [lvalue=false, elements=0]
                                                                                            BROJ (17,5) [type=int]
                                        D_UGL_ZAGRADA (17,])
                        TOCKAZAREZ (17,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<lista_naredbi>> [lvalue=false, elements=0]
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                        IDN (18,arr) [symbol=arr]
                                                                L_UGL_ZAGRADA (18,[)
                                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (18,0) [type=int]
                                                                D_UGL_ZAGRADA (18,])
                                                        OP_PRIDRUZI (18,=)
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (18,1) [type=int]
                                                TOCKAZAREZ (18,;)
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    IDN (19,arr) [symbol=arr]
                                                            L_UGL_ZAGRADA (19,[)
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (19,1) [type=int]
                                                            D_UGL_ZAGRADA (19,])
                                                    OP_PRIDRUZI (19,=)
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (19,3) [type=int]
                                            TOCKAZAREZ (19,;)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                IDN (20,arr) [symbol=arr]
                                                        L_UGL_ZAGRADA (20,[)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (20,2) [type=int]
                                                        D_UGL_ZAGRADA (20,])
                                                OP_PRIDRUZI (20,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (20,5) [type=int]
                                        TOCKAZAREZ (20,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            IDN (21,arr) [symbol=arr]
                                                    L_UGL_ZAGRADA (21,[)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (21,3) [type=int]
                                                    D_UGL_ZAGRADA (21,])
                                            OP_PRIDRUZI (21,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (21,7) [type=int]
                                    TOCKAZAREZ (21,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        IDN (22,arr) [symbol=arr]
                                                L_UGL_ZAGRADA (22,[)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (22,4) [type=int]
                                                D_UGL_ZAGRADA (22,])
                                        OP_PRIDRUZI (22,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (22,9) [type=int]
                                TOCKAZAREZ (22,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (23,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(array(INT), INT, INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(array(INT), INT, INT, INT), lvalue=false, elements=0]
                                                                                            IDN (23,binary_search_recursive) [symbol=binary_search_recursive]
                                                                                    L_ZAGRADA (23,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                            IDN (23,arr) [symbol=arr]
                                                                                                ZAREZ (23,,)
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (23,0) [type=int]
                                                                                            ZAREZ (23,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (23,4) [type=int]
                                                                                        ZAREZ (23,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (23,5) [type=int]
                                                                                    D_ZAGRADA (23,))
                            TOCKAZAREZ (23,;)
                D_VIT_ZAGRADA (24,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_BINARY_SEARCH_RECURSIVE       ; Function binary_search_recursive
; Parameter arr at (R7+8)
; Parameter left at (R7+12)
; Parameter right at (R7+16)
; Parameter key at (R7+20)
; Local variable mid at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; If statement
        LOAD R0, (R7+12)        ; load variable left
        PUSH R0                 ; save left operand
        LOAD R0, (R7+16)        ; load variable right
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE1       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Division not implemented (TODO)
        STORE R0, (R7-4)        ; assign to mid
; If statement
; Complex postfix expression (TODO)
        LOAD R0, (R7+8)         ; load variable arr
        PUSH R0                 ; save left operand
        LOAD R0, (R7+20)        ; load variable key
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE2        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END2            ; if condition is false
; Compound statement
        LOAD R0, (R7-4)         ; load variable mid
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END2                          ; end if
; If statement
; Complex postfix expression (TODO)
        LOAD R0, (R7+8)         ; load variable arr
        PUSH R0                 ; save left operand
        LOAD R0, (R7+20)        ; load variable key
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE3       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_EQ L_END3            ; if condition is false
; Compound statement
; Function call: binary_search_recursive
        LOAD R0, (R7+20)        ; load variable key
        PUSH R0                 ; push argument 4
        LOAD R0, (R7-4)         ; load variable mid
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        PUSH R0                 ; push argument 3
        LOAD R0, (R7+12)        ; load variable left
        PUSH R0                 ; push argument 2
        LOAD R0, (R7+8)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_BINARY_SEARCH_RECURSIVE; call binary_search_recursive
        ADD R7, 16, R7          ; cleanup 4 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END3                          ; end if
; Function call: binary_search_recursive
        LOAD R0, (R7+20)        ; load variable key
        PUSH R0                 ; push argument 4
        LOAD R0, (R7+16)        ; load variable right
        PUSH R0                 ; push argument 3
        LOAD R0, (R7-4)         ; load variable mid
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        PUSH R0                 ; push argument 2
        LOAD R0, (R7+8)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_BINARY_SEARCH_RECURSIVE; call binary_search_recursive
        ADD R7, 16, R7          ; cleanup 4 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from binary_search_recursive

F_MAIN                          ; Function main
; Local variable arr at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 1, R0              ; load constant 1
        STORE R0, (R7-4)        ; assign to arr
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-4)        ; assign to arr
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to arr
        MOVE 7, R0              ; load constant 7
        STORE R0, (R7-4)        ; assign to arr
        MOVE 9, R0              ; load constant 9
        STORE R0, (R7-4)        ; assign to arr
; Function call: binary_search_recursive
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 4
        MOVE 4, R0              ; load constant 4
        PUSH R0                 ; push argument 3
        MOVE 0, R0              ; load constant 0
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_BINARY_SEARCH_RECURSIVE; call binary_search_recursive
        ADD R7, 16, R7          ; cleanup 4 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program63.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int sum_recursive(int arr[], int n) {
    if (n <= 0) {
        return 0;
    }
    return arr[n - 1] + sum_recursive(arr, n - 1);
}

int main(void) {
    int arr[4];
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;
    arr[3] = 4;
    return sum_recursive(arr, 4);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                sum_recursive
     2   L_ZAGRADA          (
     3   IDN                arr
     4   L_UGL_ZAGRADA      [
     5   D_UGL_ZAGRADA      ]
     6   ZAREZ              ,
     7   IDN                n
     8   D_ZAGRADA          )
     9   L_VIT_ZAGRADA      {
     10   KR_IF              if
     11   OP_LTE             <=
     12   BROJ               0
     13   KR_RETURN          return
     14   TOCKAZAREZ         ;
     15   D_VIT_ZAGRADA      }
     16   MINUS              -
     17   BROJ               1
     18   PLUS               +
     19   IDN                main
     20   KR_VOID            void
     21   BROJ               4
     22   OP_PRIDRUZI        =
     23   BROJ               2
     24   BROJ               3

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
L_UGL_ZAGRADA          1       4
D_UGL_ZAGRADA          1       5
ZAREZ                  1       6
KR_INT                 1       0
IDN                    1       7
D_ZAGRADA              1       8
L_VIT_ZAGRADA          1       9
KR_IF                  2       10
L_ZAGRADA              2       2
IDN                    2       7
OP_LTE                 2       11
BROJ                   2       12
D_ZAGRADA              2       8
L_VIT_ZAGRADA          2       9
KR_RETURN              3       13
BROJ                   3       12
TOCKAZAREZ             3       14
D_VIT_ZAGRADA          4       15
KR_RETURN              5       13
IDN                    5       3
L_UGL_ZAGRADA          5       4
IDN                    5       7
MINUS                  5       16
BROJ                   5       17
D_UGL_ZAGRADA          5       5
PLUS                   5       18
IDN                    5       1
L_ZAGRADA              5       2
IDN                    5       3
ZAREZ                  5       6
IDN                    5       7
MINUS                  5       16
BROJ                   5       17
D_ZAGRADA              5       8
TOCKAZAREZ             5       14
D_VIT_ZAGRADA          6       15
KR_INT                 8       0
IDN                    8       19
L_ZAGRADA              8       2
KR_VOID                8       20
D_ZAGRADA              8       8
L_VIT_ZAGRADA          8       9
KR_INT                 9       0
IDN                    9       3
L_UGL_ZAGRADA          9       4
BROJ                   9       21
D_UGL_ZAGRADA          9       5
TOCKAZAREZ             9       14
IDN                   10       3
L_UGL_ZAGRADA         10       4
BROJ                  10       12
D_UGL_ZAGRADA         10       5
OP_PRIDRUZI           10       22
BROJ                  10       17
TOCKAZAREZ            10       14
IDN                   11       3
L_UGL_ZAGRADA         11       4
BROJ                  11       17
D_UGL_ZAGRADA         11       5
OP_PRIDRUZI           11       22
BROJ                  11       23
TOCKAZAREZ            11       14
IDN                   12       3
L_UGL_ZAGRADA         12       4
BROJ                  12       23
D_UGL_ZAGRADA         12       5
OP_PRIDRUZI           12       22
BROJ                  12       24
TOCKAZAREZ            12       14
IDN                   13       3
L_UGL_ZAGRADA         13       4
BROJ                  13       24
D_UGL_ZAGRADA         13       5
OP_PRIDRUZI           13       22
BROJ                  13       21
TOCKAZAREZ            13       14
KR_RETURN             14       13
IDN                   14       1
L_ZAGRADA             14       2
IDN                   14       3
ZAREZ                 14       6
BROJ                  14       21
D_ZAGRADA             14       8
TOCKAZAREZ            14       14
D_VIT_ZAGRADA         15       15
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , sum_recursive
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            D_UGL_ZAGRADA , ]
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , arr
                                                                                            L_UGL_ZAGRADA , [
                                                                                            <izraz>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , n
                                                                                                                                    MINUS , -
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 1
                                                                                            D_UGL_ZAGRADA , ]
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , sum_recursive
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , arr
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 1
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 4
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 2
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 3
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum_recursive
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , arr
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , sum_recursive
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , arr
                                            L_UGL_ZAGRADA , [
                                            D_UGL_ZAGRADA , ]
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                        OP_LTE , <=
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_skoka>
                                                        KR_RETURN , return
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , arr
                                                                                            L_UGL_ZAGRADA , [
                                                                                            <izraz>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , n
                                                                                                                                    MINUS , -
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 1
                                                                                            D_UGL_ZAGRADA , ]
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , sum_recursive
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , arr
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        IDN , n
                                                                                                                                MINUS , -
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 1
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , arr
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 4
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , arr
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , arr
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , arr
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 2
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , arr
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 3
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum_recursive
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , arr
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  sum_recursive : INT (array(INT), INT) [defined]

  Nested Scope 1:
    arr : array(INT)
    n : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    arr : array(INT)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(array(INT), INT), lvalue=false, id=sum_recursive, elements=0]
                    <<izravni_deklarator>> [type=INT(array(INT), INT), lvalue=false, id=sum_recursive, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=sum_recursive, elements=0]
                            IDN (1,sum_recursive) [symbol=sum_recursive]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                        <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                                IDN (1,arr) [symbol=arr]
                                            L_UGL_ZAGRADA (1,[)
                                            D_UGL_ZAGRADA (1,])
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,n) [symbol=n]
                                                                        OP_LTE (2,<=)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,0) [type=int]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                        KR_RETURN (3,return)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (3,0) [type=int]
                                                        TOCKAZAREZ (3,;)
                                            D_VIT_ZAGRADA (4,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (5,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    IDN (5,arr) [symbol=arr]
                                                                                            L_UGL_ZAGRADA (5,[)
                                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            IDN (5,n) [symbol=n]
                                                                                                                                    MINUS (5,-)
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (5,1) [type=int]
                                                                                            D_UGL_ZAGRADA (5,])
                                                                        PLUS (5,+)
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                                IDN (5,sum_recursive) [symbol=sum_recursive]
                                                                                        L_ZAGRADA (5,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                        IDN (5,arr) [symbol=arr]
                                                                                            ZAREZ (5,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        IDN (5,n) [symbol=n]
                                                                                                                                MINUS (5,-)
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (5,1) [type=int]
                                                                                        D_ZAGRADA (5,))
                                TOCKAZAREZ (5,;)
                    D_VIT_ZAGRADA (6,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (8,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (8,main) [symbol=main]
                    L_ZAGRADA (8,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (8,void)
                    D_ZAGRADA (8,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (8,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (9,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=array(INT), lvalue=false, id=arr, elements=4]
                                    <<izravni_deklarator>> [type=array(INT), lvalue=false, id=arr, elements=4]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=arr, elements=0]
                                            IDN (9,arr) [symbol=arr]
                                        L_UGL_ZAGRADA (9,[)
                                        <<log_ili_izraz>> [lvalue=false, elements=0]
                                            <<log_i_izraz>> [lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [lvalue=false, elements=0]
                                                                            <<cast_izraz>> [lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [lvalue=false, elements=0]
                                                                                            BROJ (9,4) [type=int]
                                        D_UGL_ZAGRADA (9,])
                        TOCKAZAREZ (9,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<lista_naredbi>> [lvalue=false, elements=0]
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                    IDN (10,arr) [symbol=arr]
                                                            L_UGL_ZAGRADA (10,[)
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (10,0) [type=int]
                                                            D_UGL_ZAGRADA (10,])
                                                    OP_PRIDRUZI (10,=)
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (10,1) [type=int]
                                            TOCKAZAREZ (10,;)
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                IDN (11,arr) [symbol=arr]
                                                        L_UGL_ZAGRADA (11,[)
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (11,1) [type=int]
                                                        D_UGL_ZAGRADA (11,])
                                                OP_PRIDRUZI (11,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (11,2) [type=int]
                                        TOCKAZAREZ (11,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                            IDN (12,arr) [symbol=arr]
                                                    L_UGL_ZAGRADA (12,[)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (12,2) [type=int]
                                                    D_UGL_ZAGRADA (12,])
                                            OP_PRIDRUZI (12,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (12,3) [type=int]
                                    TOCKAZAREZ (12,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                    <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                        IDN (13,arr) [symbol=arr]
                                                L_UGL_ZAGRADA (13,[)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (13,3) [type=int]
                                                D_UGL_ZAGRADA (13,])
                                        OP_PRIDRUZI (13,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (13,4) [type=int]
                                TOCKAZAREZ (13,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (14,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(array(INT), INT), lvalue=false, elements=0]
                                                                                            IDN (14,sum_recursive) [symbol=sum_recursive]
                                                                                    L_ZAGRADA (14,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=array(INT), lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=array(INT), lvalue=false, elements=0]
                                                                                                                                                    IDN (14,arr) [symbol=arr]
                                                                                        ZAREZ (14,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (14,4) [type=int]
                                                                                    D_ZAGRADA (14,))
                            TOCKAZAREZ (14,;)
                D_VIT_ZAGRADA (15,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_SUM_RECURSIVE                 ; Function sum_recursive
; Parameter arr at (R7+8)
; Parameter n at (R7+12)
; Compound statement
; If statement
        LOAD R0, (R7+12)        ; load variable n
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLE L_SC_TRUE1       ; comparison OP_LTE
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
; Complex postfix expression (TODO)
        LOAD R0, (R7+8)         ; load variable arr
        PUSH R0                 ; save left operand
; Function call: sum_recursive
        LOAD R0, (R7+12)        ; load variable n
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        SUB R0, R1, R0          ; subtraction
        PUSH R0                 ; push argument 2
        LOAD R0, (R7+8)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_SUM_RECURSIVE    ; call sum_recursive
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from sum_recursive

F_MAIN                          ; Function main
; Local variable arr at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 1, R0              ; load constant 1
        STORE R0, (R7-4)        ; assign to arr
        MOVE 2, R0              ; load constant 2
        STORE R0, (R7-4)        ; assign to arr
        MOVE 3, R0              ; load constant 3
        STORE R0, (R7-4)        ; assign to arr
        MOVE 4, R0              ; load constant 4
        STORE R0, (R7-4)        ; assign to arr
; Function call: sum_recursive
        MOVE 4, R0              ; load constant 4
        PUSH R0                 ; push argument 2
        LOAD R0, (R7-4)         ; load variable arr
        PUSH R0                 ; push argument 1
        CALL F_SUM_RECURSIVE    ; call sum_recursive
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program64.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
struct Complex {
    float real;
    float imag;
};

int main(void) {
    struct Complex c1;
    struct Complex c2;
    c1.real = 1.0;
    c1.imag = 2.0;
    c2.real = 3.0;
    c2.imag = 4.0;
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_STRUCT          struct
     1   IDN                Complex
     2   L_VIT_ZAGRADA      {
     3   KR_FLOAT           float
     4   IDN                real
     5   TOCKAZAREZ         ;
     6   IDN                imag
     7   D_VIT_ZAGRADA      }
     8   KR_INT             int
     9   IDN                main
     10   L_ZAGRADA          (
     11   KR_VOID            void
     12   D_ZAGRADA          )
     13   IDN                c1
     14   IDN                c2
     15   TOCKA              .
     16   OP_PRIDRUZI        =
     17   BROJ               1.0
     18   BROJ               2.0
     19   BROJ               3.0
     20   BROJ               4.0
     21   KR_RETURN          return
     22   BROJ               0

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_STRUCT              1       0
IDN                    1       1
L_VIT_ZAGRADA          1       2
KR_FLOAT               2       3
IDN                    2       4
TOCKAZAREZ             2       5
KR_FLOAT               3       3
IDN                    3       6
TOCKAZAREZ             3       5
D_VIT_ZAGRADA          4       7
TOCKAZAREZ             4       5
KR_INT                 6       8
IDN                    6       9
L_ZAGRADA              6       10
KR_VOID                6       11
D_ZAGRADA              6       12
L_VIT_ZAGRADA          6       2
KR_STRUCT              7       0
IDN                    7       1
IDN                    7       13
TOCKAZAREZ             7       5
KR_STRUCT              8       0
IDN                    8       1
IDN                    8       14
TOCKAZAREZ             8       5
IDN                    9       13
TOCKA                  9       15
IDN                    9       4
OP_PRIDRUZI            9       16
BROJ                   9       17
TOCKAZAREZ             9       5
IDN                   10       13
TOCKA                 10       15
IDN                   10       6
OP_PRIDRUZI           10       16
BROJ                  10       18
TOCKAZAREZ            10       5
IDN                   11       14
TOCKA                 11       15
IDN                   11       4
OP_PRIDRUZI           11       16
BROJ                  11       19
TOCKAZAREZ            11       5
IDN                   12       14
TOCKA                 12       15
IDN                   12       6
OP_PRIDRUZI           12       16
BROJ                  12       20
TOCKAZAREZ            12       5
KR_RETURN             13       21
BROJ                  13       22
TOCKAZAREZ            13       5
D_VIT_ZAGRADA         14       7
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        <struct_specifikator>
                            KR_STRUCT , struct
                            IDN , Complex
                            L_VIT_ZAGRADA , {
                            <struct_lista_deklaracija>
                                <struct_lista_deklaracija>
                                    <struct_deklaracija>
                                        <lista_specifikatora_kvalifikatora>
                                            <specifikator_tipa>
                                                KR_FLOAT , float
                                        <struct_lista_deklaratora>
                                            <struct_deklarator>
                                                <deklarator>
                                                    <izravni_deklarator>
                                                        IDN , real
                                        TOCKAZAREZ , ;
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        <specifikator_tipa>
                                            KR_FLOAT , float
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , imag
                                    TOCKAZAREZ , ;
                            D_VIT_ZAGRADA , }
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    <struct_specifikator>
                                        KR_STRUCT , struct
                                        IDN , Complex
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , c1
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                <struct_specifikator>
                                    KR_STRUCT , struct
                                    IDN , Complex
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c2
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , c1
                                                            TOCKA , .
                                                            IDN , real
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1.0
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , c1
                                                        TOCKA , .
                                                        IDN , imag
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2.0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , c2
                                                    TOCKA , .
                                                    IDN , real
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3.0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , c2
                                                TOCKA , .
                                                IDN , imag
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4.0
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <deklaracija>
                <specifikatori_deklaracije>
                    <struct_specifikator>
                        KR_STRUCT , struct
                        IDN , Complex
                        L_VIT_ZAGRADA , {
                        <struct_lista_deklaracija>
                            <struct_lista_deklaracija>
                                <struct_deklaracija>
                                    <lista_specifikatora_kvalifikatora>
                                        KR_FLOAT , float
                                    <struct_lista_deklaratora>
                                        <struct_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , real
                                    TOCKAZAREZ , ;
                            <struct_deklaracija>
                                <lista_specifikatora_kvalifikatora>
                                    KR_FLOAT , float
                                <struct_lista_deklaratora>
                                    <struct_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , imag
                                TOCKAZAREZ , ;
                        D_VIT_ZAGRADA , }
                TOCKAZAREZ , ;
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <struct_specifikator>
                                    KR_STRUCT , struct
                                    IDN , Complex
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , c1
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <struct_specifikator>
                                KR_STRUCT , struct
                                IDN , Complex
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c2
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , c1
                                                            TOCKA , .
                                                            IDN , real
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1.0
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , c1
                                                        TOCKA , .
                                                        IDN , imag
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2.0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , c2
                                                    TOCKA , .
                                                    IDN , real
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 3.0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , c2
                                                TOCKA , .
                                                IDN , imag
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4.0
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Analysis Errors

SEMANTIC ERRORS:
Semantic analysis failed: class hr.fer.ppj.semantics.tree.NonTerminalNode cannot be cast to class hr.fer.ppj.semantics.tree.TerminalNode (hr.fer.ppj.semantics.tree.NonTerminalNode and hr.fer.ppj.semantics.tree.TerminalNode are in unnamed module of loader 'app')
        

program65.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int is_even(int n) {
    return n % 2 == 0;
}

int main(void) {
    int x;
    x = 6;
    if (is_even(x)) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                is_even
     2   L_ZAGRADA          (
     3   IDN                n
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   KR_RETURN          return
     7   OP_MOD             %
     8   BROJ               2
     9   OP_EQ              ==
     10   BROJ               0
     11   TOCKAZAREZ         ;
     12   D_VIT_ZAGRADA      }
     13   IDN                main
     14   KR_VOID            void
     15   IDN                x
     16   OP_PRIDRUZI        =
     17   BROJ               6
     18   KR_IF              if
     19   BROJ               1

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_RETURN              2       6
IDN                    2       3
OP_MOD                 2       7
BROJ                   2       8
OP_EQ                  2       9
BROJ                   2       10
TOCKAZAREZ             2       11
D_VIT_ZAGRADA          3       12
KR_INT                 5       0
IDN                    5       13
L_ZAGRADA              5       2
KR_VOID                5       14
D_ZAGRADA              5       4
L_VIT_ZAGRADA          5       5
KR_INT                 6       0
IDN                    6       15
TOCKAZAREZ             6       11
IDN                    7       15
OP_PRIDRUZI            7       16
BROJ                   7       17
TOCKAZAREZ             7       11
KR_IF                  8       18
L_ZAGRADA              8       2
IDN                    8       1
L_ZAGRADA              8       2
IDN                    8       15
D_ZAGRADA              8       4
D_ZAGRADA              8       4
L_VIT_ZAGRADA          8       5
KR_RETURN              9       6
BROJ                   9       19
TOCKAZAREZ             9       11
D_VIT_ZAGRADA         10       12
KR_RETURN             11       6
BROJ                  11       10
TOCKAZAREZ            11       11
D_VIT_ZAGRADA         12       12
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , is_even
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                                OP_MOD , %
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                                                OP_EQ , ==
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 6
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , is_even
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , x
                                                                                        D_ZAGRADA , )
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , is_even
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                                OP_MOD , %
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                                                OP_EQ , ==
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 6
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , is_even
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , x
                                                                                        D_ZAGRADA , )
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  is_even : INT (INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    n : INT

  Nested Scope 2:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=is_even, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=is_even, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=is_even, elements=0]
                            IDN (1,is_even) [symbol=is_even]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,n) [symbol=n]
                                                                                OP_MOD (2,%)
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,2) [type=int]
                                                                OP_EQ (2,==)
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (2,0) [type=int]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (6,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (6,x) [symbol=x]
                        TOCKAZAREZ (6,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (7,x) [symbol=x]
                                            OP_PRIDRUZI (7,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (7,6) [type=int]
                                    TOCKAZAREZ (7,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (8,if)
                                L_ZAGRADA (8,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                                IDN (8,is_even) [symbol=is_even]
                                                                                        L_ZAGRADA (8,()
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    IDN (8,x) [symbol=x]
                                                                                        D_ZAGRADA (8,))
                                D_ZAGRADA (8,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (8,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (9,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (9,1) [type=int]
                                                    TOCKAZAREZ (9,;)
                                        D_VIT_ZAGRADA (10,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (11,0) [type=int]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_IS_EVEN                       ; Function is_even
; Parameter n at (R7+8)
; Compound statement
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE1        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from is_even

F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 6, R0              ; load constant 6
        STORE R0, (R7-4)        ; assign to x
; If statement
; Function call: is_even
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; push argument 1
        CALL F_IS_EVEN          ; call is_even
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program66.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int count_digits(int n) {
    int count;
    count = 0;
    while (n != 0) {
        count = count + 1;
        n = n / 10;
    }
    return count;
}

int main(void) {
    return count_digits(12345);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                count_digits
     2   L_ZAGRADA          (
     3   IDN                n
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                count
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               0
     10   KR_WHILE           while
     11   OP_NEQ             !=
     12   PLUS               +
     13   BROJ               1
     14   OP_DIJELI          /
     15   BROJ               10
     16   D_VIT_ZAGRADA      }
     17   KR_RETURN          return
     18   IDN                main
     19   KR_VOID            void
     20   BROJ               12345

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_WHILE               4       10
L_ZAGRADA              4       2
IDN                    4       3
OP_NEQ                 4       11
BROJ                   4       9
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
OP_PRIDRUZI            5       8
IDN                    5       6
PLUS                   5       12
BROJ                   5       13
TOCKAZAREZ             5       7
IDN                    6       3
OP_PRIDRUZI            6       8
IDN                    6       3
OP_DIJELI              6       14
BROJ                   6       15
TOCKAZAREZ             6       7
D_VIT_ZAGRADA          7       16
KR_RETURN              8       17
IDN                    8       6
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       16
KR_INT                11       0
IDN                   11       18
L_ZAGRADA             11       2
KR_VOID               11       19
D_ZAGRADA             11       4
L_VIT_ZAGRADA         11       5
KR_RETURN             12       17
IDN                   12       1
L_ZAGRADA             12       2
BROJ                  12       20
D_ZAGRADA             12       4
TOCKAZAREZ            12       7
D_VIT_ZAGRADA         13       16
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , count_digits
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , count
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , count
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_WHILE , while
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                    OP_NEQ , !=
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , count
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , count
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 1
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , n
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , n
                                                                                                        OP_DIJELI , /
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 10
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , count
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , count_digits
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 12345
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , count_digits
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , count
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , count
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_WHILE , while
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                    OP_NEQ , !=
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , count
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , count
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 1
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , n
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , n
                                                                                                        OP_DIJELI , /
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 10
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , count
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , count_digits
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 12345
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  count_digits : INT (INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    count : INT
    n : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=count_digits, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=count_digits, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=count_digits, elements=0]
                            IDN (1,count_digits) [symbol=count_digits]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=count, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=count, elements=0]
                                            IDN (2,count) [symbol=count]
                            TOCKAZAREZ (2,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (3,count) [symbol=count]
                                                OP_PRIDRUZI (3,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (3,0) [type=int]
                                        TOCKAZAREZ (3,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_petlje>> [lvalue=false, elements=0]
                                    KR_WHILE (4,while)
                                    L_ZAGRADA (4,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,n) [symbol=n]
                                                                    OP_NEQ (4,!=)
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,0) [type=int]
                                    D_ZAGRADA (4,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (4,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                IDN (5,count) [symbol=count]
                                                                    OP_PRIDRUZI (5,=)
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                IDN (5,count) [symbol=count]
                                                                                                        PLUS (5,+)
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (5,1) [type=int]
                                                            TOCKAZAREZ (5,;)
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (6,n) [symbol=n]
                                                                OP_PRIDRUZI (6,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (6,n) [symbol=n]
                                                                                                        OP_DIJELI (6,/)
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (6,10) [type=int]
                                                        TOCKAZAREZ (6,;)
                                            D_VIT_ZAGRADA (7,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (8,return)
                                <<izraz>> [type=INT, lvalue=true, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (8,count) [symbol=count]
                                TOCKAZAREZ (8,;)
                    D_VIT_ZAGRADA (9,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (11,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (11,main) [symbol=main]
                    L_ZAGRADA (11,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (11,void)
                    D_ZAGRADA (11,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (11,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (12,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                            IDN (12,count_digits) [symbol=count_digits]
                                                                                    L_ZAGRADA (12,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (12,12345) [type=int]
                                                                                    D_ZAGRADA (12,))
                            TOCKAZAREZ (12,;)
                D_VIT_ZAGRADA (13,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_COUNT_DIGITS                  ; Function count_digits
; Parameter n at (R7+8)
; Local variable count at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to count
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_NE L_SC_TRUE1        ; comparison OP_NEQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-4)         ; load variable count
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to count
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Division not implemented (TODO)
        STORE R0, (R7+8)        ; assign to n
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-4)         ; load variable count
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from count_digits

F_MAIN                          ; Function main
; Compound statement
; Function call: count_digits
        MOVE 12345, R0          ; load constant 12345
        PUSH R0                 ; push argument 1
        CALL F_COUNT_DIGITS     ; call count_digits
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program67.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int reverse_number(int n) {
    int reversed;
    reversed = 0;
    while (n != 0) {
        reversed = reversed * 10 + n % 10;
        n = n / 10;
    }
    return reversed;
}

int main(void) {
    return reverse_number(123);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                reverse_number
     2   L_ZAGRADA          (
     3   IDN                n
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                reversed
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               0
     10   KR_WHILE           while
     11   OP_NEQ             !=
     12   ASTERISK           *
     13   BROJ               10
     14   PLUS               +
     15   OP_MOD             %
     16   OP_DIJELI          /
     17   D_VIT_ZAGRADA      }
     18   KR_RETURN          return
     19   IDN                main
     20   KR_VOID            void
     21   BROJ               123

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_WHILE               4       10
L_ZAGRADA              4       2
IDN                    4       3
OP_NEQ                 4       11
BROJ                   4       9
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
OP_PRIDRUZI            5       8
IDN                    5       6
ASTERISK               5       12
BROJ                   5       13
PLUS                   5       14
IDN                    5       3
OP_MOD                 5       15
BROJ                   5       13
TOCKAZAREZ             5       7
IDN                    6       3
OP_PRIDRUZI            6       8
IDN                    6       3
OP_DIJELI              6       16
BROJ                   6       13
TOCKAZAREZ             6       7
D_VIT_ZAGRADA          7       17
KR_RETURN              8       18
IDN                    8       6
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       17
KR_INT                11       0
IDN                   11       19
L_ZAGRADA             11       2
KR_VOID               11       20
D_ZAGRADA             11       4
L_VIT_ZAGRADA         11       5
KR_RETURN             12       18
IDN                   12       1
L_ZAGRADA             12       2
BROJ                  12       21
D_ZAGRADA             12       4
TOCKAZAREZ            12       7
D_VIT_ZAGRADA         13       17
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , reverse_number
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , reversed
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , reversed
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_WHILE , while
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                    OP_NEQ , !=
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , reversed
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    IDN , reversed
                                                                                                                ASTERISK , *
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                BROJ , 10
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , n
                                                                                                            OP_MOD , %
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 10
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , n
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , n
                                                                                                        OP_DIJELI , /
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 10
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , reversed
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , reverse_number
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 123
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , reverse_number
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , reversed
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , reversed
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_WHILE , while
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                                                    OP_NEQ , !=
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , reversed
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    IDN , reversed
                                                                                                                ASTERISK , *
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                BROJ , 10
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , n
                                                                                                            OP_MOD , %
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 10
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , n
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , n
                                                                                                        OP_DIJELI , /
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 10
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , reversed
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , reverse_number
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 123
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  reverse_number : INT (INT) [defined]

  Nested Scope 1:
    n : INT
    reversed : INT

    Nested Scope 1:
      (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=reverse_number, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=reverse_number, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=reverse_number, elements=0]
                            IDN (1,reverse_number) [symbol=reverse_number]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=reversed, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=reversed, elements=0]
                                            IDN (2,reversed) [symbol=reversed]
                            TOCKAZAREZ (2,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (3,reversed) [symbol=reversed]
                                                OP_PRIDRUZI (3,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (3,0) [type=int]
                                        TOCKAZAREZ (3,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_petlje>> [lvalue=false, elements=0]
                                    KR_WHILE (4,while)
                                    L_ZAGRADA (4,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (4,n) [symbol=n]
                                                                    OP_NEQ (4,!=)
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (4,0) [type=int]
                                    D_ZAGRADA (4,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (4,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                IDN (5,reversed) [symbol=reversed]
                                                                    OP_PRIDRUZI (5,=)
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    IDN (5,reversed) [symbol=reversed]
                                                                                                                ASTERISK (5,*)
                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                BROJ (5,10) [type=int]
                                                                                                        PLUS (5,+)
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                IDN (5,n) [symbol=n]
                                                                                                            OP_MOD (5,%)
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (5,10) [type=int]
                                                            TOCKAZAREZ (5,;)
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (6,n) [symbol=n]
                                                                OP_PRIDRUZI (6,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (6,n) [symbol=n]
                                                                                                        OP_DIJELI (6,/)
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (6,10) [type=int]
                                                        TOCKAZAREZ (6,;)
                                            D_VIT_ZAGRADA (7,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (8,return)
                                <<izraz>> [type=INT, lvalue=true, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (8,reversed) [symbol=reversed]
                                TOCKAZAREZ (8,;)
                    D_VIT_ZAGRADA (9,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (11,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (11,main) [symbol=main]
                    L_ZAGRADA (11,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (11,void)
                    D_ZAGRADA (11,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (11,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (12,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                            IDN (12,reverse_number) [symbol=reverse_number]
                                                                                    L_ZAGRADA (12,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (12,123) [type=int]
                                                                                    D_ZAGRADA (12,))
                            TOCKAZAREZ (12,;)
                D_VIT_ZAGRADA (13,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_REVERSE_NUMBER                ; Function reverse_number
; Parameter n at (R7+8)
; Local variable reversed at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to reversed
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_NE L_SC_TRUE1        ; comparison OP_NEQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-4)         ; load variable reversed
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK2          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP2                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP2           ; repeat if multiplier > 0
L_BREAK2                        ; multiplication done
        PUSH R0                 ; save left operand
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to reversed
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Division not implemented (TODO)
        STORE R0, (R7+8)        ; assign to n
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-4)         ; load variable reversed
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from reverse_number

F_MAIN                          ; Function main
; Compound statement
; Function call: reverse_number
        MOVE 123, R0            ; load constant 123
        PUSH R0                 ; push argument 1
        CALL F_REVERSE_NUMBER   ; call reverse_number
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program68.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int is_prime(int n) {
    int i;
    if (n <= 1) {
        return 0;
    }
    for (i = 2; i < n; i = i + 1) {
        if (n % i == 0) {
            return 0;
        }
    }
    return 1;
}

int main(void) {
    return is_prime(17);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                is_prime
     2   L_ZAGRADA          (
     3   IDN                n
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   KR_IF              if
     9   OP_LTE             <=
     10   BROJ               1
     11   KR_RETURN          return
     12   BROJ               0
     13   D_VIT_ZAGRADA      }
     14   KR_FOR             for
     15   OP_PRIDRUZI        =
     16   BROJ               2
     17   OP_LT              <
     18   PLUS               +
     19   OP_MOD             %
     20   OP_EQ              ==
     21   IDN                main
     22   KR_VOID            void
     23   BROJ               17

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_IF                  3       8
L_ZAGRADA              3       2
IDN                    3       3
OP_LTE                 3       9
BROJ                   3       10
D_ZAGRADA              3       4
L_VIT_ZAGRADA          3       5
KR_RETURN              4       11
BROJ                   4       12
TOCKAZAREZ             4       7
D_VIT_ZAGRADA          5       13
KR_FOR                 6       14
L_ZAGRADA              6       2
IDN                    6       6
OP_PRIDRUZI            6       15
BROJ                   6       16
TOCKAZAREZ             6       7
IDN                    6       6
OP_LT                  6       17
IDN                    6       3
TOCKAZAREZ             6       7
IDN                    6       6
OP_PRIDRUZI            6       15
IDN                    6       6
PLUS                   6       18
BROJ                   6       10
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_IF                  7       8
L_ZAGRADA              7       2
IDN                    7       3
OP_MOD                 7       19
IDN                    7       6
OP_EQ                  7       20
BROJ                   7       12
D_ZAGRADA              7       4
L_VIT_ZAGRADA          7       5
KR_RETURN              8       11
BROJ                   8       12
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       13
D_VIT_ZAGRADA         10       13
KR_RETURN             11       11
BROJ                  11       10
TOCKAZAREZ            11       7
D_VIT_ZAGRADA         12       13
KR_INT                14       0
IDN                   14       21
L_ZAGRADA             14       2
KR_VOID               14       22
D_ZAGRADA             14       4
L_VIT_ZAGRADA         14       5
KR_RETURN             15       11
IDN                   15       1
L_ZAGRADA             15       2
BROJ                  15       23
D_ZAGRADA             15       4
TOCKAZAREZ            15       7
D_VIT_ZAGRADA         16       13
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , is_prime
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <naredba_grananja>
                                        KR_IF , if
                                        L_ZAGRADA , (
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , n
                                                                            OP_LTE , <=
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                        D_ZAGRADA , )
                                        <naredba>
                                            <slozena_naredba>
                                                L_VIT_ZAGRADA , {
                                                <lista_naredbi>
                                                    <naredba>
                                                        <naredba_skoka>
                                                            KR_RETURN , return
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                            TOCKAZAREZ , ;
                                                D_VIT_ZAGRADA , }
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , n
                                                                                                        OP_MOD , %
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_RETURN , return
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 0
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 1
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , is_prime
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 17
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , is_prime
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , n
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <naredba_grananja>
                                        KR_IF , if
                                        L_ZAGRADA , (
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , n
                                                                            OP_LTE , <=
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                        D_ZAGRADA , )
                                        <naredba>
                                            <slozena_naredba>
                                                L_VIT_ZAGRADA , {
                                                <lista_naredbi>
                                                    <naredba>
                                                        <naredba_skoka>
                                                            KR_RETURN , return
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                            TOCKAZAREZ , ;
                                                D_VIT_ZAGRADA , }
                            <naredba>
                                <naredba_petlje>
                                    KR_FOR , for
                                    L_ZAGRADA , (
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , i
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                            OP_LT , <
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , n
                                        TOCKAZAREZ , ;
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , i
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , n
                                                                                                        OP_MOD , %
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_RETURN , return
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 0
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 1
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , is_prime
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 17
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  is_prime : INT (INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    i : INT
    n : INT

    Nested Scope 1:
      (no symbols)

    Nested Scope 2:
      (no symbols)

      Nested Scope 1:
        (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT), lvalue=false, id=is_prime, elements=0]
                    <<izravni_deklarator>> [type=INT(INT), lvalue=false, id=is_prime, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=is_prime, elements=0]
                            IDN (1,is_prime) [symbol=is_prime]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=n, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=n, elements=0]
                                        IDN (1,n) [symbol=n]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            IDN (2,i) [symbol=i]
                            TOCKAZAREZ (2,;)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                        KR_IF (3,if)
                                        L_ZAGRADA (3,()
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (3,n) [symbol=n]
                                                                            OP_LTE (3,<=)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,1) [type=int]
                                        D_ZAGRADA (3,))
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                L_VIT_ZAGRADA (3,{)
                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                            KR_RETURN (4,return)
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (4,0) [type=int]
                                                            TOCKAZAREZ (4,;)
                                                D_VIT_ZAGRADA (5,})
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_petlje>> [lvalue=false, elements=0]
                                    KR_FOR (6,for)
                                    L_ZAGRADA (6,()
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (6,i) [symbol=i]
                                                OP_PRIDRUZI (6,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (6,2) [type=int]
                                        TOCKAZAREZ (6,;)
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (6,i) [symbol=i]
                                                                            OP_LT (6,<)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,n) [symbol=n]
                                        TOCKAZAREZ (6,;)
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,i) [symbol=i]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (6,i) [symbol=i]
                                                                                PLUS (6,+)
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,1) [type=int]
                                    D_ZAGRADA (6,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (6,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                        KR_IF (7,if)
                                                        L_ZAGRADA (7,()
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (7,n) [symbol=n]
                                                                                                        OP_MOD (7,%)
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (7,i) [symbol=i]
                                                                                        OP_EQ (7,==)
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (7,0) [type=int]
                                                        D_ZAGRADA (7,))
                                                        <<naredba>> [lvalue=false, elements=0]
                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                L_VIT_ZAGRADA (7,{)
                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                                            KR_RETURN (8,return)
                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        BROJ (8,0) [type=int]
                                                                            TOCKAZAREZ (8,;)
                                                                D_VIT_ZAGRADA (9,})
                                            D_VIT_ZAGRADA (10,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (11,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (11,1) [type=int]
                                TOCKAZAREZ (11,;)
                    D_VIT_ZAGRADA (12,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (14,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (14,main) [symbol=main]
                    L_ZAGRADA (14,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (14,void)
                    D_ZAGRADA (14,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (14,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (15,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT), lvalue=false, elements=0]
                                                                                            IDN (15,is_prime) [symbol=is_prime]
                                                                                    L_ZAGRADA (15,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (15,17) [type=int]
                                                                                    D_ZAGRADA (15,))
                            TOCKAZAREZ (15,;)
                D_VIT_ZAGRADA (16,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_IS_PRIME                      ; Function is_prime
; Parameter n at (R7+8)
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; If statement
        LOAD R0, (R7+8)         ; load variable n
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLE L_SC_TRUE1       ; comparison OP_LTE
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
; For loop with increment (TODO)
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from is_prime

F_MAIN                          ; Function main
; Compound statement
; Function call: is_prime
        MOVE 17, R0             ; load constant 17
        PUSH R0                 ; push argument 1
        CALL F_IS_PRIME         ; call is_prime
        ADD R7, 4, R7           ; cleanup 1 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program69.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    int z;
    x = 5;
    y = 10;
    z = x + y * 2;
    return z;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   IDN                z
     10   OP_PRIDRUZI        =
     11   BROJ               5
     12   BROJ               10
     13   PLUS               +
     14   ASTERISK           *
     15   BROJ               2
     16   KR_RETURN          return
     17   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
IDN                    7       6
PLUS                   7       13
IDN                    7       8
ASTERISK               7       14
BROJ                   7       15
TOCKAZAREZ             7       7
KR_RETURN              8       16
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       17
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , z
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , z
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , z
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , z
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , z
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , z
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT
    z : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                                IDN (2,x) [symbol=x]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                            IDN (3,y) [symbol=y]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=z, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=z, elements=0]
                                        IDN (4,z) [symbol=z]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,x) [symbol=x]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,5) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,y) [symbol=y]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,10) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,z) [symbol=z]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,x) [symbol=x]
                                                                            PLUS (7,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,y) [symbol=y]
                                                                                ASTERISK (7,*)
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (7,2) [type=int]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,z) [symbol=z]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
; Local variable z at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-12)       ; assign to z
        LOAD R0, (R7-12)        ; load variable z
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program7.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int a;
    int b;
    int result;
    a = 17;
    b = 5;
    result = a % b;
    return result;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                a
     7   TOCKAZAREZ         ;
     8   IDN                b
     9   IDN                result
     10   OP_PRIDRUZI        =
     11   BROJ               17
     12   BROJ               5
     13   OP_MOD             %
     14   KR_RETURN          return
     15   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
IDN                    7       6
OP_MOD                 7       13
IDN                    7       8
TOCKAZAREZ             7       7
KR_RETURN              8       14
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 17
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                OP_MOD , %
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , a
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 17
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , b
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , result
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                OP_MOD , %
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT
    result : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                IDN (2,a) [symbol=a]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            IDN (3,b) [symbol=b]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=result, elements=0]
                                        IDN (4,result) [symbol=result]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,a) [symbol=a]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,17) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,b) [symbol=b]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,5) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,result) [symbol=result]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,a) [symbol=a]
                                                                                OP_MOD (7,%)
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (7,b) [symbol=b]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,result) [symbol=result]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable a at (R7-4)
; Local variable b at (R7-8)
; Local variable result at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 17, R0             ; load constant 17
        STORE R0, (R7-4)        ; assign to a
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-8)        ; assign to b
        LOAD R0, (R7-4)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        STORE R0, (R7-12)       ; assign to result
        LOAD R0, (R7-12)        ; load variable result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program70.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    int z;
    x = 5;
    y = 10;
    z = (x + y) * 2;
    return z;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   IDN                z
     10   OP_PRIDRUZI        =
     11   BROJ               5
     12   BROJ               10
     13   PLUS               +
     14   ASTERISK           *
     15   BROJ               2
     16   KR_RETURN          return
     17   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
L_ZAGRADA              7       2
IDN                    7       6
PLUS                   7       13
IDN                    7       8
D_ZAGRADA              7       4
ASTERISK               7       14
BROJ                   7       15
TOCKAZAREZ             7       7
KR_RETURN              8       16
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       17
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , z
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , z
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    L_ZAGRADA , (
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <aditivni_izraz>
                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                    <cast_izraz>
                                                                                                                                                        <unarni_izraz>
                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                    IDN , x
                                                                                                                                            PLUS , +
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , y
                                                                                                    D_ZAGRADA , )
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , z
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , z
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , z
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    L_ZAGRADA , (
                                                                                                    <izraz>
                                                                                                        <izraz_pridruzivanja>
                                                                                                            <log_ili_izraz>
                                                                                                                <log_i_izraz>
                                                                                                                    <bin_ili_izraz>
                                                                                                                        <bin_xili_izraz>
                                                                                                                            <bin_i_izraz>
                                                                                                                                <jednakosni_izraz>
                                                                                                                                    <odnosni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <aditivni_izraz>
                                                                                                                                                <multiplikativni_izraz>
                                                                                                                                                    <cast_izraz>
                                                                                                                                                        <unarni_izraz>
                                                                                                                                                            <postfiks_izraz>
                                                                                                                                                                <primarni_izraz>
                                                                                                                                                                    IDN , x
                                                                                                                                            PLUS , +
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , y
                                                                                                    D_ZAGRADA , )
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , z
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT
    z : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                                IDN (2,x) [symbol=x]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                            IDN (3,y) [symbol=y]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=z, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=z, elements=0]
                                        IDN (4,z) [symbol=z]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,x) [symbol=x]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,5) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,y) [symbol=y]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,10) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,z) [symbol=z]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    L_ZAGRADA (7,()
                                                                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                    IDN (7,x) [symbol=x]
                                                                                                                                            PLUS (7,+)
                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                IDN (7,y) [symbol=y]
                                                                                                    D_ZAGRADA (7,))
                                                                                ASTERISK (7,*)
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (7,2) [type=int]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,z) [symbol=z]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
; Local variable z at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        STORE R0, (R7-12)       ; assign to z
        LOAD R0, (R7-12)        ; load variable z
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program71.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    int z;
    x = 5;
    y = 10;
    z = x > y && x < 20;
    return z;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   IDN                z
     10   OP_PRIDRUZI        =
     11   BROJ               5
     12   BROJ               10
     13   OP_GT              >
     14   OP_I               &&
     15   OP_LT              <
     16   BROJ               20
     17   KR_RETURN          return
     18   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       10
BROJ                   5       11
TOCKAZAREZ             5       7
IDN                    6       8
OP_PRIDRUZI            6       10
BROJ                   6       12
TOCKAZAREZ             6       7
IDN                    7       9
OP_PRIDRUZI            7       10
IDN                    7       6
OP_GT                  7       13
IDN                    7       8
OP_I                   7       14
IDN                    7       6
OP_LT                  7       15
BROJ                   7       16
TOCKAZAREZ             7       7
KR_RETURN              8       17
IDN                    8       9
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       18
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , z
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , z
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , x
                                                                            OP_GT , >
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                    OP_I , &&
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 20
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , z
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , x
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , y
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , z
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , z
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , x
                                                                            OP_GT , >
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                    OP_I , &&
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 20
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , z
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT
    z : INT

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (2,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                                IDN (2,x) [symbol=x]
                                TOCKAZAREZ (2,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (3,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                            IDN (3,y) [symbol=y]
                            TOCKAZAREZ (3,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (4,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=z, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=z, elements=0]
                                        IDN (4,z) [symbol=z]
                        TOCKAZAREZ (4,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (5,x) [symbol=x]
                                                OP_PRIDRUZI (5,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (5,5) [type=int]
                                        TOCKAZAREZ (5,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,y) [symbol=y]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,10) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,z) [symbol=z]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (7,x) [symbol=x]
                                                                            OP_GT (7,>)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,y) [symbol=y]
                                                    OP_I (7,&&)
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,x) [symbol=x]
                                                                        OP_LT (7,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (7,20) [type=int]
                                TOCKAZAREZ (7,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (8,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (8,z) [symbol=z]
                            TOCKAZAREZ (8,;)
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
; Local variable z at (R7-12)
        SUB R7, 12, R7          ; allocate 3 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE2       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_SC_FALSE1       ; short-circuit: left is false
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 20, R0             ; load constant 20
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE3       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_EQ L_SC_FALSE1       ; right is false
        MOVE 1, R0              ; result is true
        JP L_SC_END1
L_SC_FALSE1
        MOVE 0, R0              ; result is false
L_SC_END1
        STORE R0, (R7-12)       ; assign to z
        LOAD R0, (R7-12)        ; load variable z
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 12, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program72.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 5;
    y = 10;
    if (x > 0 && y > 0 && x < y) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               5
     11   BROJ               10
     12   KR_IF              if
     13   OP_GT              >
     14   BROJ               0
     15   OP_I               &&
     16   OP_LT              <
     17   KR_RETURN          return
     18   BROJ               1
     19   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_IF                  6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_GT                  6       13
BROJ                   6       14
OP_I                   6       15
IDN                    6       8
OP_GT                  6       13
BROJ                   6       14
OP_I                   6       15
IDN                    6       6
OP_LT                  6       16
IDN                    6       8
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_RETURN              7       17
BROJ                   7       18
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       19
KR_RETURN              9       17
BROJ                   9       14
TOCKAZAREZ             9       7
D_VIT_ZAGRADA         10       19
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <log_i_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , x
                                                                            OP_GT , >
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                                    OP_I , &&
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                                OP_I , &&
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , y
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <log_i_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , x
                                                                            OP_GT , >
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                                    OP_I , &&
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                                OP_I , &&
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , y
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,x) [symbol=x]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,5) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,y) [symbol=y]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,10) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (6,if)
                                L_ZAGRADA (6,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (6,x) [symbol=x]
                                                                            OP_GT (6,>)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,0) [type=int]
                                                    OP_I (6,&&)
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,y) [symbol=y]
                                                                        OP_GT (6,>)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (6,0) [type=int]
                                                OP_I (6,&&)
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (6,x) [symbol=x]
                                                                    OP_LT (6,<)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (6,y) [symbol=y]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (7,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (7,1) [type=int]
                                                    TOCKAZAREZ (7,;)
                                        D_VIT_ZAGRADA (8,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (9,0) [type=int]
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE3       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_EQ L_SC_FALSE2       ; short-circuit: left is false
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE4       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END4
L_SC_TRUE4
        MOVE 1, R0              ; comparison result true
L_SC_END4
        CMP R0, 0
        JP_EQ L_SC_FALSE2       ; right is false
        MOVE 1, R0              ; result is true
        JP L_SC_END2
L_SC_FALSE2
        MOVE 0, R0              ; result is false
L_SC_END2
        CMP R0, 0
        JP_EQ L_SC_FALSE1       ; short-circuit: left is false
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE5       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END5
L_SC_TRUE5
        MOVE 1, R0              ; comparison result true
L_SC_END5
        CMP R0, 0
        JP_EQ L_SC_FALSE1       ; right is false
        MOVE 1, R0              ; result is true
        JP L_SC_END1
L_SC_FALSE1
        MOVE 0, R0              ; result is false
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program73.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    int y;
    x = 0;
    y = 10;
    if (x > 0 || y > 0 || x == y) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   IDN                y
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   BROJ               10
     12   KR_IF              if
     13   OP_GT              >
     14   OP_ILI             ||
     15   OP_EQ              ==
     16   KR_RETURN          return
     17   BROJ               1
     18   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       8
OP_PRIDRUZI            5       9
BROJ                   5       11
TOCKAZAREZ             5       7
KR_IF                  6       12
L_ZAGRADA              6       2
IDN                    6       6
OP_GT                  6       13
BROJ                   6       10
OP_ILI                 6       14
IDN                    6       8
OP_GT                  6       13
BROJ                   6       10
OP_ILI                 6       14
IDN                    6       6
OP_EQ                  6       15
IDN                    6       8
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_RETURN              7       16
BROJ                   7       17
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       18
KR_RETURN              9       16
BROJ                   9       10
TOCKAZAREZ             9       7
D_VIT_ZAGRADA         10       18
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_ili_izraz>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , x
                                                                            OP_GT , >
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                                OP_ILI , ||
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                            OP_ILI , ||
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                OP_EQ , ==
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , y
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , x
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , y
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 10
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_ili_izraz>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , x
                                                                            OP_GT , >
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                                OP_ILI , ||
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , y
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                            OP_ILI , ||
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                OP_EQ , ==
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , y
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (2,x) [symbol=x]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (3,y) [symbol=y]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,x) [symbol=x]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,0) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,y) [symbol=y]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,10) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (6,if)
                                L_ZAGRADA (6,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (6,x) [symbol=x]
                                                                            OP_GT (6,>)
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,0) [type=int]
                                                OP_ILI (6,||)
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (6,y) [symbol=y]
                                                                        OP_GT (6,>)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (6,0) [type=int]
                                            OP_ILI (6,||)
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (6,x) [symbol=x]
                                                                OP_EQ (6,==)
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (6,y) [symbol=y]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (7,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (7,1) [type=int]
                                                    TOCKAZAREZ (7,;)
                                        D_VIT_ZAGRADA (8,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (9,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (9,0) [type=int]
                            TOCKAZAREZ (9,;)
                D_VIT_ZAGRADA (10,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
; Local variable y at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to x
        MOVE 10, R0             ; load constant 10
        STORE R0, (R7-8)        ; assign to y
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE3       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_NE L_SC_TRUE2        ; short-circuit: left is true
        LOAD R0, (R7-8)         ; load variable y
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE4       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END4
L_SC_TRUE4
        MOVE 1, R0              ; comparison result true
L_SC_END4
        CMP R0, 0
        JP_NE L_SC_TRUE2        ; right is true
        MOVE 0, R0              ; result is false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; result is true
L_SC_END2
        CMP R0, 0
        JP_NE L_SC_TRUE1        ; short-circuit: left is true
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7-8)         ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE5        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END5
L_SC_TRUE5
        MOVE 1, R0              ; comparison result true
L_SC_END5
        CMP R0, 0
        JP_NE L_SC_TRUE1        ; right is true
        MOVE 0, R0              ; result is false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; result is true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program74.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int nested_if(int x, int y) {
    if (x > 0) {
        if (y > 0) {
            if (x < y) {
                return 1;
            }
        }
    }
    return 0;
}

int main(void) {
    return nested_if(5, 10);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                nested_if
     2   L_ZAGRADA          (
     3   IDN                x
     4   ZAREZ              ,
     5   IDN                y
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   KR_IF              if
     9   OP_GT              >
     10   BROJ               0
     11   OP_LT              <
     12   KR_RETURN          return
     13   BROJ               1
     14   TOCKAZAREZ         ;
     15   D_VIT_ZAGRADA      }
     16   IDN                main
     17   KR_VOID            void
     18   BROJ               5
     19   BROJ               10

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
KR_IF                  2       8
L_ZAGRADA              2       2
IDN                    2       3
OP_GT                  2       9
BROJ                   2       10
D_ZAGRADA              2       6
L_VIT_ZAGRADA          2       7
KR_IF                  3       8
L_ZAGRADA              3       2
IDN                    3       5
OP_GT                  3       9
BROJ                   3       10
D_ZAGRADA              3       6
L_VIT_ZAGRADA          3       7
KR_IF                  4       8
L_ZAGRADA              4       2
IDN                    4       3
OP_LT                  4       11
IDN                    4       5
D_ZAGRADA              4       6
L_VIT_ZAGRADA          4       7
KR_RETURN              5       12
BROJ                   5       13
TOCKAZAREZ             5       14
D_VIT_ZAGRADA          6       15
D_VIT_ZAGRADA          7       15
D_VIT_ZAGRADA          8       15
KR_RETURN              9       12
BROJ                   9       10
TOCKAZAREZ             9       14
D_VIT_ZAGRADA         10       15
KR_INT                12       0
IDN                   12       16
L_ZAGRADA             12       2
KR_VOID               12       17
D_ZAGRADA             12       6
L_VIT_ZAGRADA         12       7
KR_RETURN             13       12
IDN                   13       1
L_ZAGRADA             13       2
BROJ                  13       18
ZAREZ                 13       4
BROJ                  13       19
D_ZAGRADA             13       6
TOCKAZAREZ            13       14
D_VIT_ZAGRADA         14       15
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , nested_if
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , y
                                                                                            OP_GT , >
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_grananja>
                                                                            KR_IF , if
                                                                            L_ZAGRADA , (
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , x
                                                                                                                OP_LT , <
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        IDN , y
                                                                            D_ZAGRADA , )
                                                                            <naredba>
                                                                                <slozena_naredba>
                                                                                    L_VIT_ZAGRADA , {
                                                                                    <lista_naredbi>
                                                                                        <naredba>
                                                                                            <naredba_skoka>
                                                                                                KR_RETURN , return
                                                                                                <izraz>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                                TOCKAZAREZ , ;
                                                                                    D_VIT_ZAGRADA , }
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , nested_if
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 5
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 10
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , nested_if
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , x
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , y
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <naredba_grananja>
                                    KR_IF , if
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , x
                                                                        OP_GT , >
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 0
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , y
                                                                                            OP_GT , >
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_grananja>
                                                                            KR_IF , if
                                                                            L_ZAGRADA , (
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , x
                                                                                                                OP_LT , <
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        IDN , y
                                                                            D_ZAGRADA , )
                                                                            <naredba>
                                                                                <slozena_naredba>
                                                                                    L_VIT_ZAGRADA , {
                                                                                    <lista_naredbi>
                                                                                        <naredba>
                                                                                            <naredba_skoka>
                                                                                                KR_RETURN , return
                                                                                                <izraz>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                                TOCKAZAREZ , ;
                                                                                    D_VIT_ZAGRADA , }
                                                                D_VIT_ZAGRADA , }
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , nested_if
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 5
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 10
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  nested_if : INT (INT, INT) [defined]

  Nested Scope 1:
    x : INT
    y : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

        Nested Scope 1:
          (no symbols)

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT), lvalue=false, id=nested_if, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT), lvalue=false, id=nested_if, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=nested_if, elements=0]
                            IDN (1,nested_if) [symbol=nested_if]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                            IDN (1,x) [symbol=x]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=y, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=y, elements=0]
                                        IDN (1,y) [symbol=y]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<naredba_grananja>> [lvalue=false, elements=0]
                                    KR_IF (2,if)
                                    L_ZAGRADA (2,()
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,x) [symbol=x]
                                                                        OP_GT (2,>)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (2,0) [type=int]
                                    D_ZAGRADA (2,))
                                    <<naredba>> [lvalue=false, elements=0]
                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                            L_VIT_ZAGRADA (2,{)
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                        KR_IF (3,if)
                                                        L_ZAGRADA (3,()
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (3,y) [symbol=y]
                                                                                            OP_GT (3,>)
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (3,0) [type=int]
                                                        D_ZAGRADA (3,))
                                                        <<naredba>> [lvalue=false, elements=0]
                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                L_VIT_ZAGRADA (3,{)
                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                        <<naredba_grananja>> [lvalue=false, elements=0]
                                                                            KR_IF (4,if)
                                                                            L_ZAGRADA (4,()
                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            IDN (4,x) [symbol=x]
                                                                                                                OP_LT (4,<)
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        IDN (4,y) [symbol=y]
                                                                            D_ZAGRADA (4,))
                                                                            <<naredba>> [lvalue=false, elements=0]
                                                                                <<slozena_naredba>> [lvalue=false, elements=0]
                                                                                    L_VIT_ZAGRADA (4,{)
                                                                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                                                                        <<naredba>> [lvalue=false, elements=0]
                                                                                            <<naredba_skoka>> [lvalue=false, elements=0]
                                                                                                KR_RETURN (5,return)
                                                                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            BROJ (5,1) [type=int]
                                                                                                TOCKAZAREZ (5,;)
                                                                                    D_VIT_ZAGRADA (6,})
                                                                D_VIT_ZAGRADA (7,})
                                            D_VIT_ZAGRADA (8,})
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (9,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (9,0) [type=int]
                                TOCKAZAREZ (9,;)
                    D_VIT_ZAGRADA (10,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (12,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (12,main) [symbol=main]
                    L_ZAGRADA (12,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (12,void)
                    D_ZAGRADA (12,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (12,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (13,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT, INT), lvalue=false, elements=0]
                                                                                            IDN (13,nested_if) [symbol=nested_if]
                                                                                    L_ZAGRADA (13,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (13,5) [type=int]
                                                                                        ZAREZ (13,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (13,10) [type=int]
                                                                                    D_ZAGRADA (13,))
                            TOCKAZAREZ (13,;)
                D_VIT_ZAGRADA (14,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_NESTED_IF                     ; Function nested_if
; Parameter x at (R7+8)
; Parameter y at (R7+12)
; Compound statement
; If statement
        LOAD R0, (R7+8)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE1       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
; If statement
        LOAD R0, (R7+12)        ; load variable y
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE2       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END2            ; if condition is false
; Compound statement
; If statement
        LOAD R0, (R7+8)         ; load variable x
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable y
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE3       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_EQ L_END3            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END3                          ; end if
L_END2                          ; end if
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from nested_if

F_MAIN                          ; Function main
; Compound statement
; Function call: nested_if
        MOVE 10, R0             ; load constant 10
        PUSH R0                 ; push argument 2
        MOVE 5, R0              ; load constant 5
        PUSH R0                 ; push argument 1
        CALL F_NESTED_IF        ; call nested_if
        ADD R7, 8, R7           ; cleanup 2 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program75.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    int j;
    int k;
    int count;
    count = 0;
    for (i = 0; i < 3; i = i + 1) {
        for (j = 0; j < 3; j = j + 1) {
            for (k = 0; k < 3; k = k + 1) {
                count = count + 1;
            }
        }
    }
    return count;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   IDN                j
     9   IDN                k
     10   IDN                count
     11   OP_PRIDRUZI        =
     12   BROJ               0
     13   KR_FOR             for
     14   OP_LT              <
     15   BROJ               3
     16   PLUS               +
     17   BROJ               1
     18   D_VIT_ZAGRADA      }
     19   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
KR_INT                 4       0
IDN                    4       9
TOCKAZAREZ             4       7
KR_INT                 5       0
IDN                    5       10
TOCKAZAREZ             5       7
IDN                    6       10
OP_PRIDRUZI            6       11
BROJ                   6       12
TOCKAZAREZ             6       7
KR_FOR                 7       13
L_ZAGRADA              7       2
IDN                    7       6
OP_PRIDRUZI            7       11
BROJ                   7       12
TOCKAZAREZ             7       7
IDN                    7       6
OP_LT                  7       14
BROJ                   7       15
TOCKAZAREZ             7       7
IDN                    7       6
OP_PRIDRUZI            7       11
IDN                    7       6
PLUS                   7       16
BROJ                   7       17
D_ZAGRADA              7       4
L_VIT_ZAGRADA          7       5
KR_FOR                 8       13
L_ZAGRADA              8       2
IDN                    8       8
OP_PRIDRUZI            8       11
BROJ                   8       12
TOCKAZAREZ             8       7
IDN                    8       8
OP_LT                  8       14
BROJ                   8       15
TOCKAZAREZ             8       7
IDN                    8       8
OP_PRIDRUZI            8       11
IDN                    8       8
PLUS                   8       16
BROJ                   8       17
D_ZAGRADA              8       4
L_VIT_ZAGRADA          8       5
KR_FOR                 9       13
L_ZAGRADA              9       2
IDN                    9       9
OP_PRIDRUZI            9       11
BROJ                   9       12
TOCKAZAREZ             9       7
IDN                    9       9
OP_LT                  9       14
BROJ                   9       15
TOCKAZAREZ             9       7
IDN                    9       9
OP_PRIDRUZI            9       11
IDN                    9       9
PLUS                   9       16
BROJ                   9       17
D_ZAGRADA              9       4
L_VIT_ZAGRADA          9       5
IDN                   10       10
OP_PRIDRUZI           10       11
IDN                   10       10
PLUS                  10       16
BROJ                  10       17
TOCKAZAREZ            10       7
D_VIT_ZAGRADA         11       18
D_VIT_ZAGRADA         12       18
D_VIT_ZAGRADA         13       18
KR_RETURN             14       19
IDN                   14       10
TOCKAZAREZ            14       7
D_VIT_ZAGRADA         15       18
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <lista_deklaracija>
                                <deklaracija>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <lista_init_deklaratora>
                                        <init_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , i
                                    TOCKAZAREZ , ;
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , j
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , k
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , count
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , count
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_petlje>
                                                    KR_FOR , for
                                                    L_ZAGRADA , (
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , j
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                        TOCKAZAREZ , ;
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                            OP_LT , <
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 3
                                                        TOCKAZAREZ , ;
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , j
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_petlje>
                                                                        KR_FOR , for
                                                                        L_ZAGRADA , (
                                                                        <izraz_naredba>
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , k
                                                                                    OP_PRIDRUZI , =
                                                                                    <izraz_pridruzivanja>
                                                                                        <log_ili_izraz>
                                                                                            <log_i_izraz>
                                                                                                <bin_ili_izraz>
                                                                                                    <bin_xili_izraz>
                                                                                                        <bin_i_izraz>
                                                                                                            <jednakosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            BROJ , 0
                                                                            TOCKAZAREZ , ;
                                                                        <izraz_naredba>
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , k
                                                                                                                OP_LT , <
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 3
                                                                            TOCKAZAREZ , ;
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , k
                                                                                OP_PRIDRUZI , =
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , k
                                                                                                                    PLUS , +
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 1
                                                                        D_ZAGRADA , )
                                                                        <naredba>
                                                                            <slozena_naredba>
                                                                                L_VIT_ZAGRADA , {
                                                                                <lista_naredbi>
                                                                                    <naredba>
                                                                                        <izraz_naredba>
                                                                                            <izraz>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , count
                                                                                                    OP_PRIDRUZI , =
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , count
                                                                                                                                        PLUS , +
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                            TOCKAZAREZ , ;
                                                                                D_VIT_ZAGRADA , }
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , count
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <lista_deklaracija>
                                <deklaracija>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <lista_init_deklaratora>
                                        <init_deklarator>
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , i
                                    TOCKAZAREZ , ;
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , j
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , k
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , count
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , count
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_petlje>
                                                    KR_FOR , for
                                                    L_ZAGRADA , (
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , j
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 0
                                                        TOCKAZAREZ , ;
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                            OP_LT , <
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 3
                                                        TOCKAZAREZ , ;
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , j
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , j
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_petlje>
                                                                        KR_FOR , for
                                                                        L_ZAGRADA , (
                                                                        <izraz_naredba>
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , k
                                                                                    OP_PRIDRUZI , =
                                                                                    <izraz_pridruzivanja>
                                                                                        <log_ili_izraz>
                                                                                            <log_i_izraz>
                                                                                                <bin_ili_izraz>
                                                                                                    <bin_xili_izraz>
                                                                                                        <bin_i_izraz>
                                                                                                            <jednakosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            BROJ , 0
                                                                            TOCKAZAREZ , ;
                                                                        <izraz_naredba>
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <odnosni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , k
                                                                                                                OP_LT , <
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 3
                                                                            TOCKAZAREZ , ;
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , k
                                                                                OP_PRIDRUZI , =
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <aditivni_izraz>
                                                                                                                        <multiplikativni_izraz>
                                                                                                                            <cast_izraz>
                                                                                                                                <unarni_izraz>
                                                                                                                                    <postfiks_izraz>
                                                                                                                                        <primarni_izraz>
                                                                                                                                            IDN , k
                                                                                                                    PLUS , +
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 1
                                                                        D_ZAGRADA , )
                                                                        <naredba>
                                                                            <slozena_naredba>
                                                                                L_VIT_ZAGRADA , {
                                                                                <lista_naredbi>
                                                                                    <naredba>
                                                                                        <izraz_naredba>
                                                                                            <izraz>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                IDN , count
                                                                                                    OP_PRIDRUZI , =
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <aditivni_izraz>
                                                                                                                                            <multiplikativni_izraz>
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , count
                                                                                                                                        PLUS , +
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                            TOCKAZAREZ , ;
                                                                                D_VIT_ZAGRADA , }
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , count
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    count : INT
    i : INT
    j : INT
    k : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

        Nested Scope 1:
          (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<lista_deklaracija>> [lvalue=false, elements=0]
                            <<lista_deklaracija>> [lvalue=false, elements=0]
                                <<deklaracija>> [lvalue=false, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (2,int)
                                    <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                        <<init_deklarator>> [lvalue=false, elements=0]
                                            <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                                <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                                    IDN (2,i) [symbol=i]
                                    TOCKAZAREZ (2,;)
                            <<deklaracija>> [lvalue=false, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (3,int)
                                <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                    <<init_deklarator>> [lvalue=false, elements=0]
                                        <<deklarator>> [type=INT, lvalue=true, id=j, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=j, elements=0]
                                                IDN (3,j) [symbol=j]
                                TOCKAZAREZ (3,;)
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (4,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=k, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=k, elements=0]
                                            IDN (4,k) [symbol=k]
                            TOCKAZAREZ (4,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (5,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=count, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=count, elements=0]
                                        IDN (5,count) [symbol=count]
                        TOCKAZAREZ (5,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (6,count) [symbol=count]
                                            OP_PRIDRUZI (6,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (6,0) [type=int]
                                    TOCKAZAREZ (6,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (7,for)
                                L_ZAGRADA (7,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (7,i) [symbol=i]
                                            OP_PRIDRUZI (7,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (7,0) [type=int]
                                    TOCKAZAREZ (7,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,i) [symbol=i]
                                                                        OP_LT (7,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (7,3) [type=int]
                                    TOCKAZAREZ (7,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (7,i) [symbol=i]
                                        OP_PRIDRUZI (7,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (7,i) [symbol=i]
                                                                            PLUS (7,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (7,1) [type=int]
                                D_ZAGRADA (7,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (7,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_petlje>> [lvalue=false, elements=0]
                                                    KR_FOR (8,for)
                                                    L_ZAGRADA (8,()
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (8,j) [symbol=j]
                                                                OP_PRIDRUZI (8,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (8,0) [type=int]
                                                        TOCKAZAREZ (8,;)
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (8,j) [symbol=j]
                                                                                            OP_LT (8,<)
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (8,3) [type=int]
                                                        TOCKAZAREZ (8,;)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        IDN (8,j) [symbol=j]
                                                            OP_PRIDRUZI (8,=)
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (8,j) [symbol=j]
                                                                                                PLUS (8,+)
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (8,1) [type=int]
                                                    D_ZAGRADA (8,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (8,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_petlje>> [lvalue=false, elements=0]
                                                                        KR_FOR (9,for)
                                                                        L_ZAGRADA (9,()
                                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (9,k) [symbol=k]
                                                                                    OP_PRIDRUZI (9,=)
                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            BROJ (9,0) [type=int]
                                                                            TOCKAZAREZ (9,;)
                                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            IDN (9,k) [symbol=k]
                                                                                                                OP_LT (9,<)
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        BROJ (9,3) [type=int]
                                                                            TOCKAZAREZ (9,;)
                                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (9,k) [symbol=k]
                                                                                OP_PRIDRUZI (9,=)
                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            IDN (9,k) [symbol=k]
                                                                                                                    PLUS (9,+)
                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        BROJ (9,1) [type=int]
                                                                        D_ZAGRADA (9,))
                                                                        <<naredba>> [lvalue=false, elements=0]
                                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                                L_VIT_ZAGRADA (9,{)
                                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                IDN (10,count) [symbol=count]
                                                                                                    OP_PRIDRUZI (10,=)
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                                                IDN (10,count) [symbol=count]
                                                                                                                                        PLUS (10,+)
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            BROJ (10,1) [type=int]
                                                                                            TOCKAZAREZ (10,;)
                                                                                D_VIT_ZAGRADA (11,})
                                                            D_VIT_ZAGRADA (12,})
                                        D_VIT_ZAGRADA (13,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (14,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (14,count) [symbol=count]
                            TOCKAZAREZ (14,;)
                D_VIT_ZAGRADA (15,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
; Local variable j at (R7-8)
; Local variable k at (R7-12)
; Local variable count at (R7-16)
        SUB R7, 16, R7          ; allocate 4 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-16)       ; assign to count
; For loop with increment (TODO)
        LOAD R0, (R7-16)        ; load variable count
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 16, R7          ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program76.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    int sum;
    sum = 0;
    i = 0;
    while (i < 10) {
        sum = sum + i;
        i = i + 1;
        if (sum > 20) {
            break;
        }
    }
    return sum;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   IDN                sum
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   KR_WHILE           while
     12   OP_LT              <
     13   BROJ               10
     14   PLUS               +
     15   BROJ               1
     16   KR_IF              if
     17   OP_GT              >
     18   BROJ               20
     19   KR_BREAK           break
     20   D_VIT_ZAGRADA      }
     21   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
IDN                    3       8
TOCKAZAREZ             3       7
IDN                    4       8
OP_PRIDRUZI            4       9
BROJ                   4       10
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       9
BROJ                   5       10
TOCKAZAREZ             5       7
KR_WHILE               6       11
L_ZAGRADA              6       2
IDN                    6       6
OP_LT                  6       12
BROJ                   6       13
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
IDN                    7       8
OP_PRIDRUZI            7       9
IDN                    7       8
PLUS                   7       14
IDN                    7       6
TOCKAZAREZ             7       7
IDN                    8       6
OP_PRIDRUZI            8       9
IDN                    8       6
PLUS                   8       14
BROJ                   8       15
TOCKAZAREZ             8       7
KR_IF                  9       16
L_ZAGRADA              9       2
IDN                    9       8
OP_GT                  9       17
BROJ                   9       18
D_ZAGRADA              9       4
L_VIT_ZAGRADA          9       5
KR_BREAK              10       19
TOCKAZAREZ            10       7
D_VIT_ZAGRADA         11       20
D_VIT_ZAGRADA         12       20
KR_RETURN             13       21
IDN                   13       8
TOCKAZAREZ            13       7
D_VIT_ZAGRADA         14       20
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , sum
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , sum
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , sum
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , i
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , sum
                                                                                        OP_GT , >
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 20
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , i
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , sum
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , sum
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , sum
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , sum
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , i
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , sum
                                                                                        OP_GT , >
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 20
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , sum
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT
    sum : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<lista_deklaracija>> [lvalue=false, elements=0]
                        <<deklaracija>> [lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                    KR_INT (2,int)
                            <<lista_init_deklaratora>> [lvalue=false, elements=0]
                                <<init_deklarator>> [lvalue=false, elements=0]
                                    <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                            IDN (2,i) [symbol=i]
                            TOCKAZAREZ (2,;)
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (3,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=sum, elements=0]
                                        IDN (3,sum) [symbol=sum]
                        TOCKAZAREZ (3,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<lista_naredbi>> [lvalue=false, elements=0]
                                <<naredba>> [lvalue=false, elements=0]
                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            IDN (4,sum) [symbol=sum]
                                                OP_PRIDRUZI (4,=)
                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        BROJ (4,0) [type=int]
                                        TOCKAZAREZ (4,;)
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (5,i) [symbol=i]
                                            OP_PRIDRUZI (5,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (5,0) [type=int]
                                    TOCKAZAREZ (5,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_WHILE (6,while)
                                L_ZAGRADA (6,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (6,i) [symbol=i]
                                                                    OP_LT (6,<)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (6,10) [type=int]
                                D_ZAGRADA (6,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (6,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                IDN (7,sum) [symbol=sum]
                                                                    OP_PRIDRUZI (7,=)
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                IDN (7,sum) [symbol=sum]
                                                                                                        PLUS (7,+)
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (7,i) [symbol=i]
                                                            TOCKAZAREZ (7,;)
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            IDN (8,i) [symbol=i]
                                                                OP_PRIDRUZI (8,=)
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (8,i) [symbol=i]
                                                                                                    PLUS (8,+)
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (8,1) [type=int]
                                                        TOCKAZAREZ (8,;)
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (9,if)
                                                    L_ZAGRADA (9,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (9,sum) [symbol=sum]
                                                                                        OP_GT (9,>)
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (9,20) [type=int]
                                                    D_ZAGRADA (9,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (9,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_BREAK (10,break)
                                                                        TOCKAZAREZ (10,;)
                                                            D_VIT_ZAGRADA (11,})
                                        D_VIT_ZAGRADA (12,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (13,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (13,sum) [symbol=sum]
                            TOCKAZAREZ (13,;)
                D_VIT_ZAGRADA (14,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
; Local variable sum at (R7-8)
        SUB R7, 8, R7           ; allocate 2 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-8)        ; assign to sum
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to i
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-8)         ; load variable sum
        PUSH R0                 ; save left operand
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-8)        ; assign to sum
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to i
; If statement
        LOAD R0, (R7-8)         ; load variable sum
        PUSH R0                 ; save left operand
        MOVE 20, R0             ; load constant 20
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE2       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
; Break statement (TODO)
L_END1                          ; end if
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-8)         ; load variable sum
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 8, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program77.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    i = 0;
    while (i < 10) {
        i = i + 1;
        if (i % 2 == 0) {
            continue;
        }
        if (i > 5) {
            break;
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               0
     10   KR_WHILE           while
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   KR_IF              if
     16   OP_MOD             %
     17   BROJ               2
     18   OP_EQ              ==
     19   KR_CONTINUE        continue
     20   D_VIT_ZAGRADA      }
     21   OP_GT              >
     22   BROJ               5
     23   KR_BREAK           break
     24   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_WHILE               4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_LT                  4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
IDN                    5       6
OP_PRIDRUZI            5       8
IDN                    5       6
PLUS                   5       13
BROJ                   5       14
TOCKAZAREZ             5       7
KR_IF                  6       15
L_ZAGRADA              6       2
IDN                    6       6
OP_MOD                 6       16
BROJ                   6       17
OP_EQ                  6       18
BROJ                   6       9
D_ZAGRADA              6       4
L_VIT_ZAGRADA          6       5
KR_CONTINUE            7       19
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       20
KR_IF                  9       15
L_ZAGRADA              9       2
IDN                    9       6
OP_GT                  9       21
BROJ                   9       22
D_ZAGRADA              9       4
L_VIT_ZAGRADA          9       5
KR_BREAK              10       23
TOCKAZAREZ            10       7
D_VIT_ZAGRADA         11       20
D_VIT_ZAGRADA         12       20
KR_RETURN             13       24
IDN                   13       6
TOCKAZAREZ            13       7
D_VIT_ZAGRADA         14       20
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , i
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , i
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 1
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                        OP_MOD , %
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 2
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_CONTINUE , continue
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                        OP_GT , >
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 5
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , i
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 10
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , i
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , i
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 1
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , i
                                                                                                        OP_MOD , %
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 2
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_CONTINUE , continue
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                        OP_GT , >
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 5
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

      Nested Scope 2:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_WHILE (4,while)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,i) [symbol=i]
                                                                    OP_LT (4,<)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,10) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                IDN (5,i) [symbol=i]
                                                                    OP_PRIDRUZI (5,=)
                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                                IDN (5,i) [symbol=i]
                                                                                                        PLUS (5,+)
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            BROJ (5,1) [type=int]
                                                            TOCKAZAREZ (5,;)
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                        KR_IF (6,if)
                                                        L_ZAGRADA (6,()
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                            IDN (6,i) [symbol=i]
                                                                                                        OP_MOD (6,%)
                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        BROJ (6,2) [type=int]
                                                                                        OP_EQ (6,==)
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (6,0) [type=int]
                                                        D_ZAGRADA (6,))
                                                        <<naredba>> [lvalue=false, elements=0]
                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                L_VIT_ZAGRADA (6,{)
                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                                            KR_CONTINUE (7,continue)
                                                                            TOCKAZAREZ (7,;)
                                                                D_VIT_ZAGRADA (8,})
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (9,if)
                                                    L_ZAGRADA (9,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (9,i) [symbol=i]
                                                                                        OP_GT (9,>)
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (9,5) [type=int]
                                                    D_ZAGRADA (9,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (9,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_BREAK (10,break)
                                                                        TOCKAZAREZ (10,;)
                                                            D_VIT_ZAGRADA (11,})
                                        D_VIT_ZAGRADA (12,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (13,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (13,i) [symbol=i]
                            TOCKAZAREZ (13,;)
                D_VIT_ZAGRADA (14,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 0, R0              ; load constant 0
        STORE R0, (R7-4)        ; assign to i
; While loop
L_LOOP1                         ; while loop start
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 10, R0             ; load constant 10
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SLT L_SC_TRUE1       ; comparison OP_LT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_BREAK1          ; exit while loop
; Compound statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 1, R0              ; load constant 1
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        STORE R0, (R7-4)        ; assign to i
; If statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 2, R0              ; load constant 2
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Modulo not implemented (TODO)
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_EQ L_SC_TRUE2        ; comparison OP_EQ
        MOVE 0, R0              ; comparison result false
        JP L_SC_END2
L_SC_TRUE2
        MOVE 1, R0              ; comparison result true
L_SC_END2
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
; Continue statement (TODO)
L_END1                          ; end if
; If statement
        LOAD R0, (R7-4)         ; load variable i
        PUSH R0                 ; save left operand
        MOVE 5, R0              ; load constant 5
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE3       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END3
L_SC_TRUE3
        MOVE 1, R0              ; comparison result true
L_SC_END3
        CMP R0, 0
        JP_EQ L_END2            ; if condition is false
; Compound statement
; Break statement (TODO)
L_END2                          ; end if
L_CONTINUE1                     ; while continue
        JP L_LOOP1              ; repeat while loop
L_BREAK1                        ; while loop end
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program78.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int i;
    for (i = 0; i < 10; i = i + 1) {
        if (i == 3) {
            continue;
        }
        if (i == 7) {
            break;
        }
    }
    return i;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                i
     7   TOCKAZAREZ         ;
     8   KR_FOR             for
     9   OP_PRIDRUZI        =
     10   BROJ               0
     11   OP_LT              <
     12   BROJ               10
     13   PLUS               +
     14   BROJ               1
     15   KR_IF              if
     16   OP_EQ              ==
     17   BROJ               3
     18   KR_CONTINUE        continue
     19   D_VIT_ZAGRADA      }
     20   BROJ               7
     21   KR_BREAK           break
     22   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_FOR                 3       8
L_ZAGRADA              3       2
IDN                    3       6
OP_PRIDRUZI            3       9
BROJ                   3       10
TOCKAZAREZ             3       7
IDN                    3       6
OP_LT                  3       11
BROJ                   3       12
TOCKAZAREZ             3       7
IDN                    3       6
OP_PRIDRUZI            3       9
IDN                    3       6
PLUS                   3       13
BROJ                   3       14
D_ZAGRADA              3       4
L_VIT_ZAGRADA          3       5
KR_IF                  4       15
L_ZAGRADA              4       2
IDN                    4       6
OP_EQ                  4       16
BROJ                   4       17
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_CONTINUE            5       18
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       19
KR_IF                  7       15
L_ZAGRADA              7       2
IDN                    7       6
OP_EQ                  7       16
BROJ                   7       20
D_ZAGRADA              7       4
L_VIT_ZAGRADA          7       5
KR_BREAK               8       21
TOCKAZAREZ             8       7
D_VIT_ZAGRADA          9       19
D_VIT_ZAGRADA         10       19
KR_RETURN             11       22
IDN                   11       6
TOCKAZAREZ            11       7
D_VIT_ZAGRADA         12       19
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 3
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_CONTINUE , continue
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 7
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , i
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <naredba_petlje>
                                KR_FOR , for
                                L_ZAGRADA , (
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , i
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 10
                                    TOCKAZAREZ , ;
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , i
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , i
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <naredba_grananja>
                                                        KR_IF , if
                                                        L_ZAGRADA , (
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , i
                                                                                        OP_EQ , ==
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 3
                                                        D_ZAGRADA , )
                                                        <naredba>
                                                            <slozena_naredba>
                                                                L_VIT_ZAGRADA , {
                                                                <lista_naredbi>
                                                                    <naredba>
                                                                        <naredba_skoka>
                                                                            KR_CONTINUE , continue
                                                                            TOCKAZAREZ , ;
                                                                D_VIT_ZAGRADA , }
                                            <naredba>
                                                <naredba_grananja>
                                                    KR_IF , if
                                                    L_ZAGRADA , (
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    IDN , i
                                                                                    OP_EQ , ==
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 7
                                                    D_ZAGRADA , )
                                                    <naredba>
                                                        <slozena_naredba>
                                                            L_VIT_ZAGRADA , {
                                                            <lista_naredbi>
                                                                <naredba>
                                                                    <naredba_skoka>
                                                                        KR_BREAK , break
                                                                        TOCKAZAREZ , ;
                                                            D_VIT_ZAGRADA , }
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , i
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    i : INT

    Nested Scope 1:
      (no symbols)

      Nested Scope 1:
        (no symbols)

      Nested Scope 2:
        (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=i, elements=0]
                                        IDN (2,i) [symbol=i]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_petlje>> [lvalue=false, elements=0]
                                KR_FOR (3,for)
                                L_ZAGRADA (3,()
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,i) [symbol=i]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,0) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                        OP_LT (3,<)
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,10) [type=int]
                                    TOCKAZAREZ (3,;)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (3,i) [symbol=i]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (3,i) [symbol=i]
                                                                            PLUS (3,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,1) [type=int]
                                D_ZAGRADA (3,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (3,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                <<naredba>> [lvalue=false, elements=0]
                                                    <<naredba_grananja>> [lvalue=false, elements=0]
                                                        KR_IF (4,if)
                                                        L_ZAGRADA (4,()
                                                        <<izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                        IDN (4,i) [symbol=i]
                                                                                        OP_EQ (4,==)
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    BROJ (4,3) [type=int]
                                                        D_ZAGRADA (4,))
                                                        <<naredba>> [lvalue=false, elements=0]
                                                            <<slozena_naredba>> [lvalue=false, elements=0]
                                                                L_VIT_ZAGRADA (4,{)
                                                                <<lista_naredbi>> [lvalue=false, elements=0]
                                                                    <<naredba>> [lvalue=false, elements=0]
                                                                        <<naredba_skoka>> [lvalue=false, elements=0]
                                                                            KR_CONTINUE (5,continue)
                                                                            TOCKAZAREZ (5,;)
                                                                D_VIT_ZAGRADA (6,})
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_grananja>> [lvalue=false, elements=0]
                                                    KR_IF (7,if)
                                                    L_ZAGRADA (7,()
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                                    IDN (7,i) [symbol=i]
                                                                                    OP_EQ (7,==)
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (7,7) [type=int]
                                                    D_ZAGRADA (7,))
                                                    <<naredba>> [lvalue=false, elements=0]
                                                        <<slozena_naredba>> [lvalue=false, elements=0]
                                                            L_VIT_ZAGRADA (7,{)
                                                            <<lista_naredbi>> [lvalue=false, elements=0]
                                                                <<naredba>> [lvalue=false, elements=0]
                                                                    <<naredba_skoka>> [lvalue=false, elements=0]
                                                                        KR_BREAK (8,break)
                                                                        TOCKAZAREZ (8,;)
                                                            D_VIT_ZAGRADA (9,})
                                        D_VIT_ZAGRADA (10,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (11,return)
                            <<izraz>> [type=INT, lvalue=true, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=true, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=true, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        IDN (11,i) [symbol=i]
                            TOCKAZAREZ (11,;)
                D_VIT_ZAGRADA (12,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable i at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
; For loop with increment (TODO)
        LOAD R0, (R7-4)         ; load variable i
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program79.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int multiply_three(int a, int b, int c) {
    return a * b * c;
}

int main(void) {
    return multiply_three(2, 3, 4);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                multiply_three
     2   L_ZAGRADA          (
     3   IDN                a
     4   ZAREZ              ,
     5   IDN                b
     6   IDN                c
     7   D_ZAGRADA          )
     8   L_VIT_ZAGRADA      {
     9   KR_RETURN          return
     10   ASTERISK           *
     11   TOCKAZAREZ         ;
     12   D_VIT_ZAGRADA      }
     13   IDN                main
     14   KR_VOID            void
     15   BROJ               2
     16   BROJ               3
     17   BROJ               4

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       6
D_ZAGRADA              1       7
L_VIT_ZAGRADA          1       8
KR_RETURN              2       9
IDN                    2       3
ASTERISK               2       10
IDN                    2       5
ASTERISK               2       10
IDN                    2       6
TOCKAZAREZ             2       11
D_VIT_ZAGRADA          3       12
KR_INT                 5       0
IDN                    5       13
L_ZAGRADA              5       2
KR_VOID                5       14
D_ZAGRADA              5       7
L_VIT_ZAGRADA          5       8
KR_RETURN              6       9
IDN                    6       1
L_ZAGRADA              6       2
BROJ                   6       15
ZAREZ                  6       4
BROJ                   6       16
ZAREZ                  6       4
BROJ                   6       17
D_ZAGRADA              6       7
TOCKAZAREZ             6       11
D_VIT_ZAGRADA          7       12
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , multiply_three
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , c
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , multiply_three
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 2
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 3
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , multiply_three
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , a
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , b
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , c
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , a
                                                                                ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , b
                                                                            ASTERISK , *
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , c
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , multiply_three
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 2
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 3
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]
  multiply_three : INT (INT, INT, INT) [defined]

  Nested Scope 1:
    a : INT
    b : INT
    c : INT

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT, INT), lvalue=false, id=multiply_three, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT, INT), lvalue=false, id=multiply_three, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=multiply_three, elements=0]
                            IDN (1,multiply_three) [symbol=multiply_three]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<lista_parametara>> [lvalue=false, elements=0]
                                    <<deklaracija_parametra>> [type=INT, lvalue=true, id=a, elements=0]
                                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                                KR_INT (1,int)
                                        <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                IDN (1,a) [symbol=a]
                                ZAREZ (1,,)
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=b, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            IDN (1,b) [symbol=b]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=c, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=c, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=c, elements=0]
                                        IDN (1,c) [symbol=c]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,a) [symbol=a]
                                                                                ASTERISK (2,*)
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,b) [symbol=b]
                                                                            ASTERISK (2,*)
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (2,c) [symbol=c]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (6,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT, INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT, INT, INT), lvalue=false, elements=0]
                                                                                            IDN (6,multiply_three) [symbol=multiply_three]
                                                                                    L_ZAGRADA (6,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (6,2) [type=int]
                                                                                            ZAREZ (6,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (6,3) [type=int]
                                                                                        ZAREZ (6,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (6,4) [type=int]
                                                                                    D_ZAGRADA (6,))
                            TOCKAZAREZ (6,;)
                D_VIT_ZAGRADA (7,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MULTIPLY_THREE                ; Function multiply_three
; Parameter a at (R7+8)
; Parameter b at (R7+12)
; Parameter c at (R7+16)
; Compound statement
        LOAD R0, (R7+8)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK1          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP1                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP1           ; repeat if multiplier > 0
L_BREAK1                        ; multiplication done
        PUSH R0                 ; save left operand
        LOAD R0, (R7+16)        ; load variable c
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
; Multiplication: R0 * R1
        CMP R1, 0
        JP_EQ L_BREAK2          ; if multiplier is 0
        MOVE R0, R2             ; save multiplicand
        MOVE R1, R3             ; save multiplier
        MOVE 0, R0              ; initialize result
L_LOOP2                         ; multiplication loop
        ADD R0, R2, R0          ; add multiplicand to result
        SUB R3, 1, R3           ; decrement multiplier
        CMP R3, 0
        JP_GT L_LOOP2           ; repeat if multiplier > 0
L_BREAK2                        ; multiplication done
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from multiply_three

F_MAIN                          ; Function main
; Compound statement
; Function call: multiply_three
        MOVE 4, R0              ; load constant 4
        PUSH R0                 ; push argument 3
        MOVE 3, R0              ; load constant 3
        PUSH R0                 ; push argument 2
        MOVE 2, R0              ; load constant 2
        PUSH R0                 ; push argument 1
        CALL F_MULTIPLY_THREE   ; call multiply_three
        ADD R7, 12, R7          ; cleanup 3 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program8.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (x > 0) {
        return 1;
    }
    return 0;
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_GT              >
     12   BROJ               0
     13   KR_RETURN          return
     14   BROJ               1
     15   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_GT                  4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       13
BROJ                   5       14
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       15
KR_RETURN              7       13
BROJ                   7       12
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , x
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , x
                                                                    OP_GT , >
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 0
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<lista_naredbi>> [lvalue=false, elements=0]
                            <<naredba>> [lvalue=false, elements=0]
                                <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                        IDN (3,x) [symbol=x]
                                            OP_PRIDRUZI (3,=)
                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    BROJ (3,5) [type=int]
                                    TOCKAZAREZ (3,;)
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_grananja>> [lvalue=false, elements=0]
                                KR_IF (4,if)
                                L_ZAGRADA (4,()
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (4,x) [symbol=x]
                                                                    OP_GT (4,>)
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            BROJ (4,0) [type=int]
                                D_ZAGRADA (4,))
                                <<naredba>> [lvalue=false, elements=0]
                                    <<slozena_naredba>> [lvalue=false, elements=0]
                                        L_VIT_ZAGRADA (4,{)
                                        <<lista_naredbi>> [lvalue=false, elements=0]
                                            <<naredba>> [lvalue=false, elements=0]
                                                <<naredba_skoka>> [lvalue=false, elements=0]
                                                    KR_RETURN (5,return)
                                                    <<izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                BROJ (5,1) [type=int]
                                                    TOCKAZAREZ (5,;)
                                        D_VIT_ZAGRADA (6,})
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (7,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (7,0) [type=int]
                            TOCKAZAREZ (7,;)
                D_VIT_ZAGRADA (8,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE1       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_END1            ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program80.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int add_four(int a, int b, int c, int d) {
    return a + b + c + d;
}

int main(void) {
    return add_four(1, 2, 3, 4);
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                add_four
     2   L_ZAGRADA          (
     3   IDN                a
     4   ZAREZ              ,
     5   IDN                b
     6   IDN                c
     7   IDN                d
     8   D_ZAGRADA          )
     9   L_VIT_ZAGRADA      {
     10   KR_RETURN          return
     11   PLUS               +
     12   TOCKAZAREZ         ;
     13   D_VIT_ZAGRADA      }
     14   IDN                main
     15   KR_VOID            void
     16   BROJ               1
     17   BROJ               2
     18   BROJ               3
     19   BROJ               4

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
IDN                    1       3
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       5
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       6
ZAREZ                  1       4
KR_INT                 1       0
IDN                    1       7
D_ZAGRADA              1       8
L_VIT_ZAGRADA          1       9
KR_RETURN              2       10
IDN                    2       3
PLUS                   2       11
IDN                    2       5
PLUS                   2       11
IDN                    2       6
PLUS                   2       11
IDN                    2       7
TOCKAZAREZ             2       12
D_VIT_ZAGRADA          3       13
KR_INT                 5       0
IDN                    5       14
L_ZAGRADA              5       2
KR_VOID                5       15
D_ZAGRADA              5       8
L_VIT_ZAGRADA          5       9
KR_RETURN              6       10
IDN                    6       1
L_ZAGRADA              6       2
BROJ                   6       16
ZAREZ                  6       4
BROJ                   6       17
ZAREZ                  6       4
BROJ                   6       18
ZAREZ                  6       4
BROJ                   6       19
D_ZAGRADA              6       8
TOCKAZAREZ             6       12
D_VIT_ZAGRADA          7       13
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , add_four
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <lista_parametara>
                                        <deklaracija_parametra>
                                            <specifikatori_deklaracije>
                                                <specifikator_tipa>
                                                    KR_INT , int
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , a
                                    ZAREZ , ,
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            <specifikator_tipa>
                                                KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , b
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , c
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , d
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , a
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , b
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , c
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , d
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , add_four
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 2
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 3
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , add_four
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <lista_parametara>
                                    <lista_parametara>
                                        <deklaracija_parametra>
                                            <specifikatori_deklaracije>
                                                KR_INT , int
                                            <deklarator>
                                                <izravni_deklarator>
                                                    IDN , a
                                    ZAREZ , ,
                                    <deklaracija_parametra>
                                        <specifikatori_deklaracije>
                                            KR_INT , int
                                        <deklarator>
                                            <izravni_deklarator>
                                                IDN , b
                                ZAREZ , ,
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , c
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , d
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , a
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , b
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , c
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , d
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_naredbi>
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , add_four
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <lista_argumenata>
                                                                                                <lista_argumenata>
                                                                                                    <izraz_pridruzivanja>
                                                                                                        <log_ili_izraz>
                                                                                                            <log_i_izraz>
                                                                                                                <bin_ili_izraz>
                                                                                                                    <bin_xili_izraz>
                                                                                                                        <bin_i_izraz>
                                                                                                                            <jednakosni_izraz>
                                                                                                                                <odnosni_izraz>
                                                                                                                                    <aditivni_izraz>
                                                                                                                                        <multiplikativni_izraz>
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            BROJ , 1
                                                                                                ZAREZ , ,
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <postfiks_izraz>
                                                                                                                                                    <primarni_izraz>
                                                                                                                                                        BROJ , 2
                                                                                            ZAREZ , ,
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    BROJ , 3
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 4
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  add_four : INT (INT, INT, INT, INT) [defined]
  main : INT () [defined]

  Nested Scope 1:
    a : INT
    b : INT
    c : INT
    d : INT

  Nested Scope 2:
    (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<prijevodna_jedinica>> [lvalue=false, elements=0]
        <<vanjska_deklaracija>> [lvalue=false, elements=0]
            <<definicija_funkcije>> [lvalue=false, elements=0]
                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                        KR_INT (1,int)
                <<deklarator>> [type=INT(INT, INT, INT, INT), lvalue=false, id=add_four, elements=0]
                    <<izravni_deklarator>> [type=INT(INT, INT, INT, INT), lvalue=false, id=add_four, elements=0]
                        <<izravni_deklarator>> [type=INT, lvalue=true, id=add_four, elements=0]
                            IDN (1,add_four) [symbol=add_four]
                        L_ZAGRADA (1,()
                        <<lista_parametara>> [lvalue=false, elements=0]
                            <<lista_parametara>> [lvalue=false, elements=0]
                                <<lista_parametara>> [lvalue=false, elements=0]
                                    <<lista_parametara>> [lvalue=false, elements=0]
                                        <<deklaracija_parametra>> [type=INT, lvalue=true, id=a, elements=0]
                                            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                                    KR_INT (1,int)
                                            <<deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                <<izravni_deklarator>> [type=INT, lvalue=true, id=a, elements=0]
                                                    IDN (1,a) [symbol=a]
                                    ZAREZ (1,,)
                                    <<deklaracija_parametra>> [type=INT, lvalue=true, id=b, elements=0]
                                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                                KR_INT (1,int)
                                        <<deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                            <<izravni_deklarator>> [type=INT, lvalue=true, id=b, elements=0]
                                                IDN (1,b) [symbol=b]
                                ZAREZ (1,,)
                                <<deklaracija_parametra>> [type=INT, lvalue=true, id=c, elements=0]
                                    <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                        <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                            KR_INT (1,int)
                                    <<deklarator>> [type=INT, lvalue=true, id=c, elements=0]
                                        <<izravni_deklarator>> [type=INT, lvalue=true, id=c, elements=0]
                                            IDN (1,c) [symbol=c]
                            ZAREZ (1,,)
                            <<deklaracija_parametra>> [type=INT, lvalue=true, id=d, elements=0]
                                <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                                    <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                        KR_INT (1,int)
                                <<deklarator>> [type=INT, lvalue=true, id=d, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=d, elements=0]
                                        IDN (1,d) [symbol=d]
                        D_ZAGRADA (1,))
                <<slozena_naredba>> [lvalue=false, elements=0]
                    L_VIT_ZAGRADA (1,{)
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<naredba_skoka>> [lvalue=false, elements=0]
                                KR_RETURN (2,return)
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                        IDN (2,a) [symbol=a]
                                                                                PLUS (2,+)
                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                    IDN (2,b) [symbol=b]
                                                                            PLUS (2,+)
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                                IDN (2,c) [symbol=c]
                                                                        PLUS (2,+)
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (2,d) [symbol=d]
                                TOCKAZAREZ (2,;)
                    D_VIT_ZAGRADA (3,})
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (5,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (5,main) [symbol=main]
                    L_ZAGRADA (5,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (5,void)
                    D_ZAGRADA (5,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (5,{)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_skoka>> [lvalue=false, elements=0]
                            KR_RETURN (6,return)
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT(INT, INT, INT, INT), lvalue=false, elements=0]
                                                                                        <<primarni_izraz>> [type=INT(INT, INT, INT, INT), lvalue=false, elements=0]
                                                                                            IDN (6,add_four) [symbol=add_four]
                                                                                    L_ZAGRADA (6,()
                                                                                    <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                        <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                            <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                <<lista_argumenata>> [lvalue=false, elements=0]
                                                                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                            BROJ (6,1) [type=int]
                                                                                                ZAREZ (6,,)
                                                                                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                        BROJ (6,2) [type=int]
                                                                                            ZAREZ (6,,)
                                                                                            <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                    BROJ (6,3) [type=int]
                                                                                        ZAREZ (6,,)
                                                                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                                                                BROJ (6,4) [type=int]
                                                                                    D_ZAGRADA (6,))
                            TOCKAZAREZ (6,;)
                D_VIT_ZAGRADA (7,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_ADD_FOUR                      ; Function add_four
; Parameter a at (R7+8)
; Parameter b at (R7+12)
; Parameter c at (R7+16)
; Parameter d at (R7+20)
; Compound statement
        LOAD R0, (R7+8)         ; load variable a
        PUSH R0                 ; save left operand
        LOAD R0, (R7+12)        ; load variable b
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        PUSH R0                 ; save left operand
        LOAD R0, (R7+16)        ; load variable c
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        PUSH R0                 ; save left operand
        LOAD R0, (R7+20)        ; load variable d
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        ADD R0, R1, R0          ; addition
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from add_four

F_MAIN                          ; Function main
; Compound statement
; Function call: add_four
        MOVE 4, R0              ; load constant 4
        PUSH R0                 ; push argument 4
        MOVE 3, R0              ; load constant 3
        PUSH R0                 ; push argument 3
        MOVE 2, R0              ; load constant 2
        PUSH R0                 ; push argument 2
        MOVE 1, R0              ; load constant 1
        PUSH R0                 ; push argument 1
        CALL F_ADD_FOUR         ; call add_four
        ADD R7, 16, R7          ; cleanup 4 arguments
        MOVE R6, R0             ; function result
        MOVE R0, R6             ; return value
        RET                     ; return from function
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program81.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int main(void) {
    int value;
    int *pointer;
    value = 5;
    pointer = &value;
    *pointer = *pointer + 2;
    return value;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                value
     7   TOCKAZAREZ         ;
     8   ASTERISK           *
     9   IDN                pointer
     10   OP_PRIDRUZI        =
     11   BROJ               5
     12   AMPERSAND          &
     13   PLUS               +
     14   BROJ               2
     15   KR_RETURN          return
     16   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
ASTERISK               3       8
IDN                    3       9
TOCKAZAREZ             3       7
IDN                    4       6
OP_PRIDRUZI            4       10
BROJ                   4       11
TOCKAZAREZ             4       7
IDN                    5       9
OP_PRIDRUZI            5       10
AMPERSAND              5       12
IDN                    5       6
TOCKAZAREZ             5       7
ASTERISK               6       8
IDN                    6       9
OP_PRIDRUZI            6       10
ASTERISK               6       8
IDN                    6       9
PLUS                   6       13
BROJ                   6       14
TOCKAZAREZ             6       7
KR_RETURN              7       15
IDN                    7       6
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       16
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , value
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , pointer
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , value
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , pointer
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <unarni_operator>
                                                                                                AMPERSAND , &
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , value
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <unarni_operator>
                                                ASTERISK , *
                                            <cast_izraz>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , pointer
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <unarni_operator>
                                                                                                ASTERISK , *
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , pointer
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , value
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , value
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , pointer
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , value
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 5
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , pointer
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <unarni_operator>
                                                                                                AMPERSAND , &
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , value
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <unarni_operator>
                                                ASTERISK , *
                                            <cast_izraz>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , pointer
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <unarni_operator>
                                                                                                ASTERISK , *
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , pointer
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , value
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<init_deklarator> ::= <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program82.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int add_pointer(int *ptr) {
    return *ptr + 3;
}

int main(void) {
    int number;
    int *p;
    number = 4;
    p = &number;
    return add_pointer(p);
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                add_pointer
     2   L_ZAGRADA          (
     3   ASTERISK           *
     4   IDN                ptr
     5   D_ZAGRADA          )
     6   L_VIT_ZAGRADA      {
     7   KR_RETURN          return
     8   PLUS               +
     9   BROJ               3
     10   TOCKAZAREZ         ;
     11   D_VIT_ZAGRADA      }
     12   IDN                main
     13   KR_VOID            void
     14   IDN                number
     15   IDN                p
     16   OP_PRIDRUZI        =
     17   BROJ               4
     18   AMPERSAND          &

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
ASTERISK               1       3
IDN                    1       4
D_ZAGRADA              1       5
L_VIT_ZAGRADA          1       6
KR_RETURN              2       7
ASTERISK               2       3
IDN                    2       4
PLUS                   2       8
BROJ                   2       9
TOCKAZAREZ             2       10
D_VIT_ZAGRADA          3       11
KR_INT                 5       0
IDN                    5       12
L_ZAGRADA              5       2
KR_VOID                5       13
D_ZAGRADA              5       5
L_VIT_ZAGRADA          5       6
KR_INT                 6       0
IDN                    6       14
TOCKAZAREZ             6       10
KR_INT                 7       0
ASTERISK               7       3
IDN                    7       15
TOCKAZAREZ             7       10
IDN                    8       14
OP_PRIDRUZI            8       16
BROJ                   8       17
TOCKAZAREZ             8       10
IDN                    9       15
OP_PRIDRUZI            9       16
AMPERSAND              9       18
IDN                    9       14
TOCKAZAREZ             9       10
KR_RETURN             10       7
IDN                   10       1
L_ZAGRADA             10       2
IDN                   10       15
D_ZAGRADA             10       5
TOCKAZAREZ            10       10
D_VIT_ZAGRADA         11       11
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , add_pointer
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , ptr
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <unarni_operator>
                                                                                            ASTERISK , *
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , ptr
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 3
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , number
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , p
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , number
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , p
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <unarni_operator>
                                                                                            AMPERSAND , &
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , number
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , add_pointer
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , p
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , add_pointer
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , ptr
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <unarni_operator>
                                                                                            ASTERISK , *
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , ptr
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 3
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , number
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , p
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , number
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , p
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <unarni_operator>
                                                                                            AMPERSAND , &
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , number
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , add_pointer
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , p
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<deklaracija_parametra> ::= <specifikatori_deklaracije> <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program83.c

Lexer: OK Parser error at line 4 Semantic: Skipped (parser failed) CodeGen: Skipped (semantic failed)
Source Code
int main(void) {
    int value;
    int *p1;
    int **p2;
    value = 2;
    p1 = &value;
    p2 = &p1;
    **p2 = **p2 + 8;
    return value;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                value
     7   TOCKAZAREZ         ;
     8   ASTERISK           *
     9   IDN                p1
     10   IDN                p2
     11   OP_PRIDRUZI        =
     12   BROJ               2
     13   AMPERSAND          &
     14   PLUS               +
     15   BROJ               8
     16   KR_RETURN          return
     17   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
KR_INT                 3       0
ASTERISK               3       8
IDN                    3       9
TOCKAZAREZ             3       7
KR_INT                 4       0
ASTERISK               4       8
ASTERISK               4       8
IDN                    4       10
TOCKAZAREZ             4       7
IDN                    5       6
OP_PRIDRUZI            5       11
BROJ                   5       12
TOCKAZAREZ             5       7
IDN                    6       9
OP_PRIDRUZI            6       11
AMPERSAND              6       13
IDN                    6       6
TOCKAZAREZ             6       7
IDN                    7       10
OP_PRIDRUZI            7       11
AMPERSAND              7       13
IDN                    7       9
TOCKAZAREZ             7       7
ASTERISK               8       8
ASTERISK               8       8
IDN                    8       10
OP_PRIDRUZI            8       11
ASTERISK               8       8
ASTERISK               8       8
IDN                    8       10
PLUS                   8       14
BROJ                   8       15
TOCKAZAREZ             8       7
KR_RETURN              9       16
IDN                    9       6
TOCKAZAREZ             9       7
D_VIT_ZAGRADA         10       17
Generative Tree
Parse error: Sintaksna greška na retku 4.
Pročitan uniformni znak: ASTERISK (*).
Očekivani uniformni znakovi: IDN, KR_CONST.
Syntax Tree
Parse error: Sintaksna greška na retku 4.
Pročitan uniformni znak: ASTERISK (*).
Očekivani uniformni znakovi: IDN, KR_CONST.
Analysis Errors

PARSER ERRORS:
Sintaksna greška na retku 4.
Pročitan uniformni znak: ASTERISK (*).
Očekivani uniformni znakovi: IDN, KR_CONST.

        

program84.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int main(void) {
    int values[3];
    int *ptr;
    values[0] = 1;
    values[1] = 2;
    values[2] = 3;
    ptr = values;
    ptr = ptr + 2;
    return *ptr;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                values
     7   L_UGL_ZAGRADA      [
     8   BROJ               3
     9   D_UGL_ZAGRADA      ]
     10   TOCKAZAREZ         ;
     11   ASTERISK           *
     12   IDN                ptr
     13   BROJ               0
     14   OP_PRIDRUZI        =
     15   BROJ               1
     16   BROJ               2
     17   PLUS               +
     18   KR_RETURN          return
     19   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
L_UGL_ZAGRADA          2       7
BROJ                   2       8
D_UGL_ZAGRADA          2       9
TOCKAZAREZ             2       10
KR_INT                 3       0
ASTERISK               3       11
IDN                    3       12
TOCKAZAREZ             3       10
IDN                    4       6
L_UGL_ZAGRADA          4       7
BROJ                   4       13
D_UGL_ZAGRADA          4       9
OP_PRIDRUZI            4       14
BROJ                   4       15
TOCKAZAREZ             4       10
IDN                    5       6
L_UGL_ZAGRADA          5       7
BROJ                   5       15
D_UGL_ZAGRADA          5       9
OP_PRIDRUZI            5       14
BROJ                   5       16
TOCKAZAREZ             5       10
IDN                    6       6
L_UGL_ZAGRADA          6       7
BROJ                   6       16
D_UGL_ZAGRADA          6       9
OP_PRIDRUZI            6       14
BROJ                   6       8
TOCKAZAREZ             6       10
IDN                    7       12
OP_PRIDRUZI            7       14
IDN                    7       6
TOCKAZAREZ             7       10
IDN                    8       12
OP_PRIDRUZI            8       14
IDN                    8       12
PLUS                   8       17
BROJ                   8       16
TOCKAZAREZ             8       10
KR_RETURN              9       18
ASTERISK               9       11
IDN                    9       12
TOCKAZAREZ             9       10
D_VIT_ZAGRADA         10       19
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , values
                                            L_UGL_ZAGRADA , [
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                            D_UGL_ZAGRADA , ]
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , ptr
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , values
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , values
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , values
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 3
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , ptr
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , values
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , ptr
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , ptr
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <unarni_operator>
                                                                                    ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , ptr
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            <izravni_deklarator>
                                                IDN , values
                                            L_UGL_ZAGRADA , [
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 3
                                            D_UGL_ZAGRADA , ]
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , ptr
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , values
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , values
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , values
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 2
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 3
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , ptr
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , values
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , ptr
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , ptr
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 2
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <unarni_operator>
                                                                                    ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , ptr
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<init_deklarator> ::= <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program85.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int difference(int *end, int *start) {
    return end - start;
}

int main(void) {
    int array[4];
    int *begin;
    int *finish;
    begin = array;
    finish = array + 4;
    return difference(finish, begin);
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                difference
     2   L_ZAGRADA          (
     3   ASTERISK           *
     4   IDN                end
     5   ZAREZ              ,
     6   IDN                start
     7   D_ZAGRADA          )
     8   L_VIT_ZAGRADA      {
     9   KR_RETURN          return
     10   MINUS              -
     11   TOCKAZAREZ         ;
     12   D_VIT_ZAGRADA      }
     13   IDN                main
     14   KR_VOID            void
     15   IDN                array
     16   L_UGL_ZAGRADA      [
     17   BROJ               4
     18   D_UGL_ZAGRADA      ]
     19   IDN                begin
     20   IDN                finish
     21   OP_PRIDRUZI        =
     22   PLUS               +

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
ASTERISK               1       3
IDN                    1       4
ZAREZ                  1       5
KR_INT                 1       0
ASTERISK               1       3
IDN                    1       6
D_ZAGRADA              1       7
L_VIT_ZAGRADA          1       8
KR_RETURN              2       9
IDN                    2       4
MINUS                  2       10
IDN                    2       6
TOCKAZAREZ             2       11
D_VIT_ZAGRADA          3       12
KR_INT                 5       0
IDN                    5       13
L_ZAGRADA              5       2
KR_VOID                5       14
D_ZAGRADA              5       7
L_VIT_ZAGRADA          5       8
KR_INT                 6       0
IDN                    6       15
L_UGL_ZAGRADA          6       16
BROJ                   6       17
D_UGL_ZAGRADA          6       18
TOCKAZAREZ             6       11
KR_INT                 7       0
ASTERISK               7       3
IDN                    7       19
TOCKAZAREZ             7       11
KR_INT                 8       0
ASTERISK               8       3
IDN                    8       20
TOCKAZAREZ             8       11
IDN                    9       19
OP_PRIDRUZI            9       21
IDN                    9       15
TOCKAZAREZ             9       11
IDN                   10       20
OP_PRIDRUZI           10       21
IDN                   10       15
PLUS                  10       22
BROJ                  10       17
TOCKAZAREZ            10       11
KR_RETURN             11       9
IDN                   11       1
L_ZAGRADA             11       2
IDN                   11       20
ZAREZ                 11       5
IDN                   11       19
D_ZAGRADA             11       7
TOCKAZAREZ            11       11
D_VIT_ZAGRADA         12       12
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , difference
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , end
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , start
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , end
                                                                        MINUS , -
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , start
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , array
                                                L_UGL_ZAGRADA , [
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , begin
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , finish
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , begin
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , array
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , finish
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , array
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , difference
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , finish
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , begin
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , difference
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , end
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , start
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , end
                                                                        MINUS , -
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , start
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , array
                                                L_UGL_ZAGRADA , [
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                                D_UGL_ZAGRADA , ]
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , begin
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , finish
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , begin
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , array
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , finish
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , array
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 4
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , difference
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , finish
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                IDN , begin
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<deklaracija_parametra> ::= <specifikatori_deklaracije> <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program86.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
void increment(int *value) {
    *value = *value + 1;
}

int main(void) {
    int counter;
    counter = 0;
    increment(&counter);
    increment(&counter);
    return counter;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_VOID            void
     1   IDN                increment
     2   L_ZAGRADA          (
     3   KR_INT             int
     4   ASTERISK           *
     5   IDN                value
     6   D_ZAGRADA          )
     7   L_VIT_ZAGRADA      {
     8   OP_PRIDRUZI        =
     9   PLUS               +
     10   BROJ               1
     11   TOCKAZAREZ         ;
     12   D_VIT_ZAGRADA      }
     13   IDN                main
     14   IDN                counter
     15   BROJ               0
     16   AMPERSAND          &
     17   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_VOID                1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       3
ASTERISK               1       4
IDN                    1       5
D_ZAGRADA              1       6
L_VIT_ZAGRADA          1       7
ASTERISK               2       4
IDN                    2       5
OP_PRIDRUZI            2       8
ASTERISK               2       4
IDN                    2       5
PLUS                   2       9
BROJ                   2       10
TOCKAZAREZ             2       11
D_VIT_ZAGRADA          3       12
KR_INT                 5       3
IDN                    5       13
L_ZAGRADA              5       2
KR_VOID                5       0
D_ZAGRADA              5       6
L_VIT_ZAGRADA          5       7
KR_INT                 6       3
IDN                    6       14
TOCKAZAREZ             6       11
IDN                    7       14
OP_PRIDRUZI            7       8
BROJ                   7       15
TOCKAZAREZ             7       11
IDN                    8       1
L_ZAGRADA              8       2
AMPERSAND              8       16
IDN                    8       14
D_ZAGRADA              8       6
TOCKAZAREZ             8       11
IDN                    9       1
L_ZAGRADA              9       2
AMPERSAND              9       16
IDN                    9       14
D_ZAGRADA              9       6
TOCKAZAREZ             9       11
KR_RETURN             10       17
IDN                   10       14
TOCKAZAREZ            10       11
D_VIT_ZAGRADA         11       12
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_VOID , void
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , increment
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , value
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <unarni_operator>
                                                ASTERISK , *
                                            <cast_izraz>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , value
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <unarni_operator>
                                                                                                ASTERISK , *
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , value
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , counter
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , counter
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , increment
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <unarni_operator>
                                                                                                                                                    AMPERSAND , &
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , counter
                                                                                            D_ZAGRADA , )
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , increment
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <unarni_operator>
                                                                                                                                                AMPERSAND , &
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , counter
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , counter
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_VOID , void
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , increment
                        L_ZAGRADA , (
                        <lista_parametara>
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , value
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <unarni_operator>
                                                ASTERISK , *
                                            <cast_izraz>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , value
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <unarni_operator>
                                                                                                ASTERISK , *
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            IDN , value
                                                                            PLUS , +
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 1
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , counter
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , counter
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , increment
                                                                                            L_ZAGRADA , (
                                                                                            <lista_argumenata>
                                                                                                <izraz_pridruzivanja>
                                                                                                    <log_ili_izraz>
                                                                                                        <log_i_izraz>
                                                                                                            <bin_ili_izraz>
                                                                                                                <bin_xili_izraz>
                                                                                                                    <bin_i_izraz>
                                                                                                                        <jednakosni_izraz>
                                                                                                                            <odnosni_izraz>
                                                                                                                                <aditivni_izraz>
                                                                                                                                    <multiplikativni_izraz>
                                                                                                                                        <cast_izraz>
                                                                                                                                            <unarni_izraz>
                                                                                                                                                <unarni_operator>
                                                                                                                                                    AMPERSAND , &
                                                                                                                                                <cast_izraz>
                                                                                                                                                    <unarni_izraz>
                                                                                                                                                        <postfiks_izraz>
                                                                                                                                                            <primarni_izraz>
                                                                                                                                                                IDN , counter
                                                                                            D_ZAGRADA , )
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , increment
                                                                                        L_ZAGRADA , (
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <unarni_operator>
                                                                                                                                                AMPERSAND , &
                                                                                                                                            <cast_izraz>
                                                                                                                                                <unarni_izraz>
                                                                                                                                                    <postfiks_izraz>
                                                                                                                                                        <primarni_izraz>
                                                                                                                                                            IDN , counter
                                                                                        D_ZAGRADA , )
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , counter
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<deklaracija_parametra> ::= <specifikatori_deklaracije> <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program87.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int main(void) {
    int data[2];
    int *first;
    int *second;
    data[0] = 5;
    data[1] = 7;
    first = data;
    second = data + 1;
    if (first < second) {
        return *second;
    }
    return *first;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                data
     7   L_UGL_ZAGRADA      [
     8   BROJ               2
     9   D_UGL_ZAGRADA      ]
     10   TOCKAZAREZ         ;
     11   ASTERISK           *
     12   IDN                first
     13   IDN                second
     14   BROJ               0
     15   OP_PRIDRUZI        =
     16   BROJ               5
     17   BROJ               1
     18   BROJ               7
     19   PLUS               +
     20   KR_IF              if
     21   OP_LT              <
     22   KR_RETURN          return
     23   D_VIT_ZAGRADA      }

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
L_UGL_ZAGRADA          2       7
BROJ                   2       8
D_UGL_ZAGRADA          2       9
TOCKAZAREZ             2       10
KR_INT                 3       0
ASTERISK               3       11
IDN                    3       12
TOCKAZAREZ             3       10
KR_INT                 4       0
ASTERISK               4       11
IDN                    4       13
TOCKAZAREZ             4       10
IDN                    5       6
L_UGL_ZAGRADA          5       7
BROJ                   5       14
D_UGL_ZAGRADA          5       9
OP_PRIDRUZI            5       15
BROJ                   5       16
TOCKAZAREZ             5       10
IDN                    6       6
L_UGL_ZAGRADA          6       7
BROJ                   6       17
D_UGL_ZAGRADA          6       9
OP_PRIDRUZI            6       15
BROJ                   6       18
TOCKAZAREZ             6       10
IDN                    7       12
OP_PRIDRUZI            7       15
IDN                    7       6
TOCKAZAREZ             7       10
IDN                    8       13
OP_PRIDRUZI            8       15
IDN                    8       6
PLUS                   8       19
BROJ                   8       17
TOCKAZAREZ             8       10
KR_IF                  9       20
L_ZAGRADA              9       2
IDN                    9       12
OP_LT                  9       21
IDN                    9       13
D_ZAGRADA              9       4
L_VIT_ZAGRADA          9       5
KR_RETURN             10       22
ASTERISK              10       11
IDN                   10       13
TOCKAZAREZ            10       10
D_VIT_ZAGRADA         11       23
KR_RETURN             12       22
ASTERISK              12       11
IDN                   12       12
TOCKAZAREZ            12       10
D_VIT_ZAGRADA         13       23
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , data
                                                L_UGL_ZAGRADA , [
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 2
                                                D_UGL_ZAGRADA , ]
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , first
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , second
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , data
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 5
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , data
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 7
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , first
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , data
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , second
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , data
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , first
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , second
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <unarni_operator>
                                                                                                            ASTERISK , *
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , second
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <unarni_operator>
                                                                                    ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , first
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , data
                                                L_UGL_ZAGRADA , [
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 2
                                                D_UGL_ZAGRADA , ]
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , first
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , second
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , data
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 0
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 5
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , data
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 7
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , first
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , data
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , second
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , data
                                                                                PLUS , +
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 1
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_grananja>
                                KR_IF , if
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , first
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , second
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <naredba>
                                                <naredba_skoka>
                                                    KR_RETURN , return
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <unarni_operator>
                                                                                                            ASTERISK , *
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , second
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <unarni_operator>
                                                                                    ASTERISK , *
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , first
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<init_deklarator> ::= <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program88.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int sum(int *start, int *end) {
    int total;
    total = 0;
    while (start < end) {
        total = total + *start;
        start = start + 1;
    }
    return total;
}

int main(void) {
    int numbers[3];
    numbers[0] = 2;
    numbers[1] = 4;
    numbers[2] = 6;
    return sum(numbers, numbers + 3);
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                sum
     2   L_ZAGRADA          (
     3   ASTERISK           *
     4   IDN                start
     5   ZAREZ              ,
     6   IDN                end
     7   D_ZAGRADA          )
     8   L_VIT_ZAGRADA      {
     9   IDN                total
     10   TOCKAZAREZ         ;
     11   OP_PRIDRUZI        =
     12   BROJ               0
     13   KR_WHILE           while
     14   OP_LT              <
     15   PLUS               +
     16   BROJ               1
     17   D_VIT_ZAGRADA      }
     18   KR_RETURN          return
     19   IDN                main
     20   KR_VOID            void
     21   IDN                numbers
     22   L_UGL_ZAGRADA      [
     23   BROJ               3
     24   D_UGL_ZAGRADA      ]
     25   BROJ               2
     26   BROJ               4
     27   BROJ               6

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_INT                 1       0
ASTERISK               1       3
IDN                    1       4
ZAREZ                  1       5
KR_INT                 1       0
ASTERISK               1       3
IDN                    1       6
D_ZAGRADA              1       7
L_VIT_ZAGRADA          1       8
KR_INT                 2       0
IDN                    2       9
TOCKAZAREZ             2       10
IDN                    3       9
OP_PRIDRUZI            3       11
BROJ                   3       12
TOCKAZAREZ             3       10
KR_WHILE               4       13
L_ZAGRADA              4       2
IDN                    4       4
OP_LT                  4       14
IDN                    4       6
D_ZAGRADA              4       7
L_VIT_ZAGRADA          4       8
IDN                    5       9
OP_PRIDRUZI            5       11
IDN                    5       9
PLUS                   5       15
ASTERISK               5       3
IDN                    5       4
TOCKAZAREZ             5       10
IDN                    6       4
OP_PRIDRUZI            6       11
IDN                    6       4
PLUS                   6       15
BROJ                   6       16
TOCKAZAREZ             6       10
D_VIT_ZAGRADA          7       17
KR_RETURN              8       18
IDN                    8       9
TOCKAZAREZ             8       10
D_VIT_ZAGRADA          9       17
KR_INT                11       0
IDN                   11       19
L_ZAGRADA             11       2
KR_VOID               11       20
D_ZAGRADA             11       7
L_VIT_ZAGRADA         11       8
KR_INT                12       0
IDN                   12       21
L_UGL_ZAGRADA         12       22
BROJ                  12       23
D_UGL_ZAGRADA         12       24
TOCKAZAREZ            12       10
IDN                   13       21
L_UGL_ZAGRADA         13       22
BROJ                  13       12
D_UGL_ZAGRADA         13       24
OP_PRIDRUZI           13       11
BROJ                  13       25
TOCKAZAREZ            13       10
IDN                   14       21
L_UGL_ZAGRADA         14       22
BROJ                  14       16
D_UGL_ZAGRADA         14       24
OP_PRIDRUZI           14       11
BROJ                  14       26
TOCKAZAREZ            14       10
IDN                   15       21
L_UGL_ZAGRADA         15       22
BROJ                  15       25
D_UGL_ZAGRADA         15       24
OP_PRIDRUZI           15       11
BROJ                  15       27
TOCKAZAREZ            15       10
KR_RETURN             16       18
IDN                   16       1
L_ZAGRADA             16       2
IDN                   16       21
ZAREZ                 16       5
IDN                   16       21
PLUS                  16       15
BROJ                  16       23
D_ZAGRADA             16       7
TOCKAZAREZ            16       10
D_VIT_ZAGRADA         17       17
Generative Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    <specifikator_tipa>
                        KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , sum
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        <specifikator_tipa>
                                            KR_INT , int
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , start
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , end
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , total
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , total
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_WHILE , while
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , start
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , end
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , total
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , total
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <unarni_operator>
                                                                                                                        ASTERISK , *
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    IDN , start
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , start
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , start
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , total
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , numbers
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 3
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , numbers
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , numbers
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , numbers
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 6
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , numbers
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , numbers
                                                                                                                            PLUS , +
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 3
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <prijevodna_jedinica>
        <vanjska_deklaracija>
            <definicija_funkcije>
                <specifikatori_deklaracije>
                    KR_INT , int
                <deklarator>
                    <izravni_deklarator>
                        <izravni_deklarator>
                            IDN , sum
                        L_ZAGRADA , (
                        <lista_parametara>
                            <lista_parametara>
                                <deklaracija_parametra>
                                    <specifikatori_deklaracije>
                                        KR_INT , int
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , start
                            ZAREZ , ,
                            <deklaracija_parametra>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <deklarator>
                                    <pokazivac>
                                        ASTERISK , *
                                    <izravni_deklarator>
                                        IDN , end
                        D_ZAGRADA , )
                <slozena_naredba>
                    L_VIT_ZAGRADA , {
                    <lista_deklaracija>
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <izravni_deklarator>
                                            IDN , total
                            TOCKAZAREZ , ;
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , total
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 0
                                        TOCKAZAREZ , ;
                            <naredba>
                                <naredba_petlje>
                                    KR_WHILE , while
                                    L_ZAGRADA , (
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    IDN , start
                                                                        OP_LT , <
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , end
                                    D_ZAGRADA , )
                                    <naredba>
                                        <slozena_naredba>
                                            L_VIT_ZAGRADA , {
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , total
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , total
                                                                                                        PLUS , +
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <unarni_operator>
                                                                                                                        ASTERISK , *
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    IDN , start
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , start
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , start
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 1
                                                        TOCKAZAREZ , ;
                                            D_VIT_ZAGRADA , }
                        <naredba>
                            <naredba_skoka>
                                KR_RETURN , return
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , total
                                TOCKAZAREZ , ;
                    D_VIT_ZAGRADA , }
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        <izravni_deklarator>
                                            IDN , numbers
                                        L_UGL_ZAGRADA , [
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 3
                                        D_UGL_ZAGRADA , ]
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <postfiks_izraz>
                                                            <primarni_izraz>
                                                                IDN , numbers
                                                        L_UGL_ZAGRADA , [
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 0
                                                        D_UGL_ZAGRADA , ]
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        BROJ , 2
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , numbers
                                                    L_UGL_ZAGRADA , [
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 1
                                                    D_UGL_ZAGRADA , ]
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 4
                                    TOCKAZAREZ , ;
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , numbers
                                                L_UGL_ZAGRADA , [
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 2
                                                D_UGL_ZAGRADA , ]
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 6
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , sum
                                                                                    L_ZAGRADA , (
                                                                                    <lista_argumenata>
                                                                                        <lista_argumenata>
                                                                                            <izraz_pridruzivanja>
                                                                                                <log_ili_izraz>
                                                                                                    <log_i_izraz>
                                                                                                        <bin_ili_izraz>
                                                                                                            <bin_xili_izraz>
                                                                                                                <bin_i_izraz>
                                                                                                                    <jednakosni_izraz>
                                                                                                                        <odnosni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , numbers
                                                                                        ZAREZ , ,
                                                                                        <izraz_pridruzivanja>
                                                                                            <log_ili_izraz>
                                                                                                <log_i_izraz>
                                                                                                    <bin_ili_izraz>
                                                                                                        <bin_xili_izraz>
                                                                                                            <bin_i_izraz>
                                                                                                                <jednakosni_izraz>
                                                                                                                    <odnosni_izraz>
                                                                                                                        <aditivni_izraz>
                                                                                                                            <aditivni_izraz>
                                                                                                                                <multiplikativni_izraz>
                                                                                                                                    <cast_izraz>
                                                                                                                                        <unarni_izraz>
                                                                                                                                            <postfiks_izraz>
                                                                                                                                                <primarni_izraz>
                                                                                                                                                    IDN , numbers
                                                                                                                            PLUS , +
                                                                                                                            <multiplikativni_izraz>
                                                                                                                                <cast_izraz>
                                                                                                                                    <unarni_izraz>
                                                                                                                                        <postfiks_izraz>
                                                                                                                                            <primarni_izraz>
                                                                                                                                                BROJ , 3
                                                                                    D_ZAGRADA , )
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<deklaracija_parametra> ::= <specifikatori_deklaracije> <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error
        

program89.c

Lexer: OK Parser error at line 12 Semantic: Skipped (parser failed) CodeGen: Skipped (semantic failed)
Source Code
struct Pair {
    int first;
    int second;
};

int main(void) {
    struct Pair pair;
    struct Pair *pointer;
    pair.first = 3;
    pair.second = 9;
    pointer = &pair;
    return pointer->first + pointer->second;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_STRUCT          struct
     1   IDN                Pair
     2   L_VIT_ZAGRADA      {
     3   KR_INT             int
     4   IDN                first
     5   TOCKAZAREZ         ;
     6   IDN                second
     7   D_VIT_ZAGRADA      }
     8   IDN                main
     9   L_ZAGRADA          (
     10   KR_VOID            void
     11   D_ZAGRADA          )
     12   IDN                pair
     13   ASTERISK           *
     14   IDN                pointer
     15   TOCKA              .
     16   OP_PRIDRUZI        =
     17   BROJ               3
     18   BROJ               9
     19   AMPERSAND          &
     20   KR_RETURN          return
     21   MINUS              -
     22   OP_GT              >
     23   PLUS               +

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_STRUCT              1       0
IDN                    1       1
L_VIT_ZAGRADA          1       2
KR_INT                 2       3
IDN                    2       4
TOCKAZAREZ             2       5
KR_INT                 3       3
IDN                    3       6
TOCKAZAREZ             3       5
D_VIT_ZAGRADA          4       7
TOCKAZAREZ             4       5
KR_INT                 6       3
IDN                    6       8
L_ZAGRADA              6       9
KR_VOID                6       10
D_ZAGRADA              6       11
L_VIT_ZAGRADA          6       2
KR_STRUCT              7       0
IDN                    7       1
IDN                    7       12
TOCKAZAREZ             7       5
KR_STRUCT              8       0
IDN                    8       1
ASTERISK               8       13
IDN                    8       14
TOCKAZAREZ             8       5
IDN                    9       12
TOCKA                  9       15
IDN                    9       4
OP_PRIDRUZI            9       16
BROJ                   9       17
TOCKAZAREZ             9       5
IDN                   10       12
TOCKA                 10       15
IDN                   10       6
OP_PRIDRUZI           10       16
BROJ                  10       18
TOCKAZAREZ            10       5
IDN                   11       14
OP_PRIDRUZI           11       16
AMPERSAND             11       19
IDN                   11       12
TOCKAZAREZ            11       5
KR_RETURN             12       20
IDN                   12       14
MINUS                 12       21
OP_GT                 12       22
IDN                   12       4
PLUS                  12       23
IDN                   12       14
MINUS                 12       21
OP_GT                 12       22
IDN                   12       6
TOCKAZAREZ            12       5
D_VIT_ZAGRADA         13       7
Generative Tree
Parse error: Sintaksna greška na retku 12.
Pročitan uniformni znak: OP_GT (>).
Očekivani uniformni znakovi: AMPERSAND, ASTERISK, BROJ, IDN, L_ZAGRADA, MINUS, NIZ_ZNAKOVA, OP_DEC, OP_INC, OP_NEG, OP_TILDA, PLUS, ZNAK.
Syntax Tree
Parse error: Sintaksna greška na retku 12.
Pročitan uniformni znak: OP_GT (>).
Očekivani uniformni znakovi: AMPERSAND, ASTERISK, BROJ, IDN, L_ZAGRADA, MINUS, NIZ_ZNAKOVA, OP_DEC, OP_INC, OP_NEG, OP_TILDA, PLUS, ZNAK.
Analysis Errors

PARSER ERRORS:
Sintaksna greška na retku 12.
Pročitan uniformni znak: OP_GT (>).
Očekivani uniformni znakovi: AMPERSAND, ASTERISK, BROJ, IDN, L_ZAGRADA, MINUS, NIZ_ZNAKOVA, OP_DEC, OP_INC, OP_NEG, OP_TILDA, PLUS, ZNAK.

        

program9.c

Lexer: OK Parser: OK Semantic: OK CodeGen: OK
Source Code
int main(void) {
    int x;
    x = 5;
    if (x > 0) {
        return 1;
    } else {
        return 0;
    }
}

Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                x
     7   TOCKAZAREZ         ;
     8   OP_PRIDRUZI        =
     9   BROJ               5
     10   KR_IF              if
     11   OP_GT              >
     12   BROJ               0
     13   KR_RETURN          return
     14   BROJ               1
     15   D_VIT_ZAGRADA      }
     16   KR_ELSE            else

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
TOCKAZAREZ             2       7
IDN                    3       6
OP_PRIDRUZI            3       8
BROJ                   3       9
TOCKAZAREZ             3       7
KR_IF                  4       10
L_ZAGRADA              4       2
IDN                    4       6
OP_GT                  4       11
BROJ                   4       12
D_ZAGRADA              4       4
L_VIT_ZAGRADA          4       5
KR_RETURN              5       13
BROJ                   5       14
TOCKAZAREZ             5       7
D_VIT_ZAGRADA          6       15
KR_ELSE                6       16
L_VIT_ZAGRADA          6       5
KR_RETURN              7       13
BROJ                   7       12
TOCKAZAREZ             7       7
D_VIT_ZAGRADA          8       15
D_VIT_ZAGRADA          9       15
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_grananja>
                            KR_IF , if
                            L_ZAGRADA , (
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                                                OP_GT , >
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            D_ZAGRADA , )
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                            KR_ELSE , else
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 0
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , x
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <naredba>
                            <izraz_naredba>
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <unarni_izraz>
                                            <postfiks_izraz>
                                                <primarni_izraz>
                                                    IDN , x
                                        OP_PRIDRUZI , =
                                        <izraz_pridruzivanja>
                                            <log_ili_izraz>
                                                <log_i_izraz>
                                                    <bin_ili_izraz>
                                                        <bin_xili_izraz>
                                                            <bin_i_izraz>
                                                                <jednakosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                BROJ , 5
                                TOCKAZAREZ , ;
                    <naredba>
                        <naredba_grananja>
                            KR_IF , if
                            L_ZAGRADA , (
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <odnosni_izraz>
                                                                    <aditivni_izraz>
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            IDN , x
                                                                OP_GT , >
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        BROJ , 0
                            D_ZAGRADA , )
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 1
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                            KR_ELSE , else
                            <naredba>
                                <slozena_naredba>
                                    L_VIT_ZAGRADA , {
                                    <lista_naredbi>
                                        <naredba>
                                            <naredba_skoka>
                                                KR_RETURN , return
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 0
                                                TOCKAZAREZ , ;
                                    D_VIT_ZAGRADA , }
                D_VIT_ZAGRADA , }
Semantic Analysis
No semantic errors found.
Symbol Table
=== SYMBOL TABLE DUMP ===

Global Scope:
  main : INT () [defined]

  Nested Scope 1:
    x : INT

    Nested Scope 1:
      (no symbols)

    Nested Scope 2:
      (no symbols)

Semantic Tree
=== SEMANTIC TREE DUMP ===

<<prijevodna_jedinica>> [lvalue=false, elements=0]
    <<vanjska_deklaracija>> [lvalue=false, elements=0]
        <<definicija_funkcije>> [lvalue=false, elements=0]
            <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                    KR_INT (1,int)
            <<deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                <<izravni_deklarator>> [type=INT(), lvalue=false, id=main, elements=0]
                    <<izravni_deklarator>> [type=INT, lvalue=true, id=main, elements=0]
                        IDN (1,main) [symbol=main]
                    L_ZAGRADA (1,()
                    <<lista_parametara>> [lvalue=false, elements=0]
                        <<deklaracija_parametra>> [type=VOID, lvalue=false, elements=0]
                            <<specifikatori_deklaracije>> [type=VOID, lvalue=false, elements=0]
                                <<specifikator_tipa>> [type=VOID, lvalue=false, elements=0]
                                    KR_VOID (1,void)
                    D_ZAGRADA (1,))
            <<slozena_naredba>> [lvalue=false, elements=0]
                L_VIT_ZAGRADA (1,{)
                <<lista_deklaracija>> [lvalue=false, elements=0]
                    <<deklaracija>> [lvalue=false, elements=0]
                        <<specifikatori_deklaracije>> [type=INT, lvalue=false, elements=0]
                            <<specifikator_tipa>> [type=INT, lvalue=false, elements=0]
                                KR_INT (2,int)
                        <<lista_init_deklaratora>> [lvalue=false, elements=0]
                            <<init_deklarator>> [lvalue=false, elements=0]
                                <<deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                    <<izravni_deklarator>> [type=INT, lvalue=true, id=x, elements=0]
                                        IDN (2,x) [symbol=x]
                        TOCKAZAREZ (2,;)
                <<lista_naredbi>> [lvalue=false, elements=0]
                    <<lista_naredbi>> [lvalue=false, elements=0]
                        <<naredba>> [lvalue=false, elements=0]
                            <<izraz_naredba>> [type=INT, lvalue=false, elements=0]
                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                        <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                            <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                    IDN (3,x) [symbol=x]
                                        OP_PRIDRUZI (3,=)
                                        <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                            <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                BROJ (3,5) [type=int]
                                TOCKAZAREZ (3,;)
                    <<naredba>> [lvalue=false, elements=0]
                        <<naredba_grananja>> [lvalue=false, elements=0]
                            KR_IF (4,if)
                            L_ZAGRADA (4,()
                            <<izraz>> [type=INT, lvalue=false, elements=0]
                                <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                    <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                        <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                            <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                        <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<odnosni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                    <<aditivni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                            <<cast_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                <<unarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                    <<postfiks_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                        <<primarni_izraz>> [type=INT, lvalue=true, elements=0]
                                                                                            IDN (4,x) [symbol=x]
                                                                OP_GT (4,>)
                                                                <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        BROJ (4,0) [type=int]
                            D_ZAGRADA (4,))
                            <<naredba>> [lvalue=false, elements=0]
                                <<slozena_naredba>> [lvalue=false, elements=0]
                                    L_VIT_ZAGRADA (4,{)
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<naredba_skoka>> [lvalue=false, elements=0]
                                                KR_RETURN (5,return)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (5,1) [type=int]
                                                TOCKAZAREZ (5,;)
                                    D_VIT_ZAGRADA (6,})
                            KR_ELSE (6,else)
                            <<naredba>> [lvalue=false, elements=0]
                                <<slozena_naredba>> [lvalue=false, elements=0]
                                    L_VIT_ZAGRADA (6,{)
                                    <<lista_naredbi>> [lvalue=false, elements=0]
                                        <<naredba>> [lvalue=false, elements=0]
                                            <<naredba_skoka>> [lvalue=false, elements=0]
                                                KR_RETURN (7,return)
                                                <<izraz>> [type=INT, lvalue=false, elements=0]
                                                    <<izraz_pridruzivanja>> [type=INT, lvalue=false, elements=0]
                                                        <<log_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                            <<log_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                <<bin_ili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                    <<bin_xili_izraz>> [type=INT, lvalue=false, elements=0]
                                                                        <<bin_i_izraz>> [type=INT, lvalue=false, elements=0]
                                                                            <<jednakosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                <<odnosni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                    <<aditivni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                        <<multiplikativni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                            <<cast_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                <<unarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                    <<postfiks_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                        <<primarni_izraz>> [type=INT, lvalue=false, elements=0]
                                                                                                            BROJ (7,0) [type=int]
                                                TOCKAZAREZ (7,;)
                                    D_VIT_ZAGRADA (8,})
                D_VIT_ZAGRADA (9,})
Generated FRISC Assembly Code
; Program entry point
        MOVE 40000, R7          ; init stack pointer
        CALL F_MAIN             ; call main
        HALT                    ; end of program, R6 holds return value

; Function definitions
F_MAIN                          ; Function main
; Local variable x at (R7-4)
        SUB R7, 4, R7           ; allocate 1 local variables
; Compound statement
; Local declarations (TODO)
        MOVE 5, R0              ; load constant 5
        STORE R0, (R7-4)        ; assign to x
; If-else statement
        LOAD R0, (R7-4)         ; load variable x
        PUSH R0                 ; save left operand
        MOVE 0, R0              ; load constant 0
        MOVE R0, R1             ; right operand to R1
        POP R0                  ; restore left operand
        CMP R0, R1
        JP_SGT L_SC_TRUE1       ; comparison OP_GT
        MOVE 0, R0              ; comparison result false
        JP L_SC_END1
L_SC_TRUE1
        MOVE 1, R0              ; comparison result true
L_SC_END1
        CMP R0, 0
        JP_EQ L_ELSE1           ; if condition is false
; Compound statement
        MOVE 1, R0              ; load constant 1
        MOVE R0, R6             ; return value
        RET                     ; return from function
        JP L_END1               ; skip else
L_ELSE1                         ; else clause
; Compound statement
        MOVE 0, R0              ; load constant 0
        MOVE R0, R6             ; return value
        RET                     ; return from function
L_END1                          ; end if-else
        ADD R7, 4, R7           ; deallocate local variables
        MOVE 0, R6              ; default return value
        RET                     ; return from main

; Global variables

program90.c

Lexer: OK Parser: OK Semantic error CodeGen: Skipped (semantic failed)
Source Code
int main(void) {
    int buffer[5];
    int *ptr;
    int result;
    buffer[0] = 1;
    buffer[1] = 3;
    buffer[2] = 5;
    buffer[3] = 7;
    buffer[4] = 9;
    ptr = buffer;
    result = 0;
    while (ptr < buffer + 5) {
        result = result + *ptr;
        ptr = ptr + 1;
    }
    return result;
}


Lexical Tokens
tablica znakova:
indeks   uniformni znak   izvorni tekst
     0   KR_INT             int
     1   IDN                main
     2   L_ZAGRADA          (
     3   KR_VOID            void
     4   D_ZAGRADA          )
     5   L_VIT_ZAGRADA      {
     6   IDN                buffer
     7   L_UGL_ZAGRADA      [
     8   BROJ               5
     9   D_UGL_ZAGRADA      ]
     10   TOCKAZAREZ         ;
     11   ASTERISK           *
     12   IDN                ptr
     13   IDN                result
     14   BROJ               0
     15   OP_PRIDRUZI        =
     16   BROJ               1
     17   BROJ               3
     18   BROJ               2
     19   BROJ               7
     20   BROJ               4
     21   BROJ               9
     22   KR_WHILE           while
     23   OP_LT              <
     24   PLUS               +
     25   D_VIT_ZAGRADA      }
     26   KR_RETURN          return

niz uniformnih znakova:
uniformni znak    redak    indeks u tablicu znakova
KR_INT                 1       0
IDN                    1       1
L_ZAGRADA              1       2
KR_VOID                1       3
D_ZAGRADA              1       4
L_VIT_ZAGRADA          1       5
KR_INT                 2       0
IDN                    2       6
L_UGL_ZAGRADA          2       7
BROJ                   2       8
D_UGL_ZAGRADA          2       9
TOCKAZAREZ             2       10
KR_INT                 3       0
ASTERISK               3       11
IDN                    3       12
TOCKAZAREZ             3       10
KR_INT                 4       0
IDN                    4       13
TOCKAZAREZ             4       10
IDN                    5       6
L_UGL_ZAGRADA          5       7
BROJ                   5       14
D_UGL_ZAGRADA          5       9
OP_PRIDRUZI            5       15
BROJ                   5       16
TOCKAZAREZ             5       10
IDN                    6       6
L_UGL_ZAGRADA          6       7
BROJ                   6       16
D_UGL_ZAGRADA          6       9
OP_PRIDRUZI            6       15
BROJ                   6       17
TOCKAZAREZ             6       10
IDN                    7       6
L_UGL_ZAGRADA          7       7
BROJ                   7       18
D_UGL_ZAGRADA          7       9
OP_PRIDRUZI            7       15
BROJ                   7       8
TOCKAZAREZ             7       10
IDN                    8       6
L_UGL_ZAGRADA          8       7
BROJ                   8       17
D_UGL_ZAGRADA          8       9
OP_PRIDRUZI            8       15
BROJ                   8       19
TOCKAZAREZ             8       10
IDN                    9       6
L_UGL_ZAGRADA          9       7
BROJ                   9       20
D_UGL_ZAGRADA          9       9
OP_PRIDRUZI            9       15
BROJ                   9       21
TOCKAZAREZ             9       10
IDN                   10       12
OP_PRIDRUZI           10       15
IDN                   10       6
TOCKAZAREZ            10       10
IDN                   11       13
OP_PRIDRUZI           11       15
BROJ                  11       14
TOCKAZAREZ            11       10
KR_WHILE              12       22
L_ZAGRADA             12       2
IDN                   12       12
OP_LT                 12       23
IDN                   12       6
PLUS                  12       24
BROJ                  12       8
D_ZAGRADA             12       4
L_VIT_ZAGRADA         12       5
IDN                   13       13
OP_PRIDRUZI           13       15
IDN                   13       13
PLUS                  13       24
ASTERISK              13       11
IDN                   13       12
TOCKAZAREZ            13       10
IDN                   14       12
OP_PRIDRUZI           14       15
IDN                   14       12
PLUS                  14       24
BROJ                  14       16
TOCKAZAREZ            14       10
D_VIT_ZAGRADA         15       25
KR_RETURN             16       26
IDN                   16       13
TOCKAZAREZ            16       10
D_VIT_ZAGRADA         17       25
Generative Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                <specifikator_tipa>
                    KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    <specifikator_tipa>
                                        KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , buffer
                                                L_UGL_ZAGRADA , [
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                                D_UGL_ZAGRADA , ]
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                <specifikator_tipa>
                                    KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , ptr
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            <specifikator_tipa>
                                KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <postfiks_izraz>
                                                                                <primarni_izraz>
                                                                                    IDN , buffer
                                                                            L_UGL_ZAGRADA , [
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 0
                                                                            D_UGL_ZAGRADA , ]
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 1
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , buffer
                                                                        L_UGL_ZAGRADA , [
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <log_ili_izraz>
                                                                                    <log_i_izraz>
                                                                                        <bin_ili_izraz>
                                                                                            <bin_xili_izraz>
                                                                                                <bin_i_izraz>
                                                                                                    <jednakosni_izraz>
                                                                                                        <odnosni_izraz>
                                                                                                            <aditivni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    BROJ , 1
                                                                        D_UGL_ZAGRADA , ]
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 3
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , buffer
                                                                    L_UGL_ZAGRADA , [
                                                                    <izraz>
                                                                        <izraz_pridruzivanja>
                                                                            <log_ili_izraz>
                                                                                <log_i_izraz>
                                                                                    <bin_ili_izraz>
                                                                                        <bin_xili_izraz>
                                                                                            <bin_i_izraz>
                                                                                                <jednakosni_izraz>
                                                                                                    <odnosni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                BROJ , 2
                                                                    D_UGL_ZAGRADA , ]
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 5
                                                    TOCKAZAREZ , ;
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , buffer
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 3
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 7
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , buffer
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 4
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 9
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , ptr
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , buffer
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , result
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , ptr
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , buffer
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , result
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , result
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <unarni_operator>
                                                                                                                    ASTERISK , *
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , ptr
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , ptr
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , ptr
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Syntax Tree
<prijevodna_jedinica>
    <vanjska_deklaracija>
        <definicija_funkcije>
            <specifikatori_deklaracije>
                KR_INT , int
            <deklarator>
                <izravni_deklarator>
                    <izravni_deklarator>
                        IDN , main
                    L_ZAGRADA , (
                    <lista_parametara>
                        <deklaracija_parametra>
                            <specifikatori_deklaracije>
                                KR_VOID , void
                    D_ZAGRADA , )
            <slozena_naredba>
                L_VIT_ZAGRADA , {
                <lista_deklaracija>
                    <lista_deklaracija>
                        <lista_deklaracija>
                            <deklaracija>
                                <specifikatori_deklaracije>
                                    KR_INT , int
                                <lista_init_deklaratora>
                                    <init_deklarator>
                                        <deklarator>
                                            <izravni_deklarator>
                                                <izravni_deklarator>
                                                    IDN , buffer
                                                L_UGL_ZAGRADA , [
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 5
                                                D_UGL_ZAGRADA , ]
                                TOCKAZAREZ , ;
                        <deklaracija>
                            <specifikatori_deklaracije>
                                KR_INT , int
                            <lista_init_deklaratora>
                                <init_deklarator>
                                    <deklarator>
                                        <pokazivac>
                                            ASTERISK , *
                                        <izravni_deklarator>
                                            IDN , ptr
                            TOCKAZAREZ , ;
                    <deklaracija>
                        <specifikatori_deklaracije>
                            KR_INT , int
                        <lista_init_deklaratora>
                            <init_deklarator>
                                <deklarator>
                                    <izravni_deklarator>
                                        IDN , result
                        TOCKAZAREZ , ;
                <lista_naredbi>
                    <lista_naredbi>
                        <lista_naredbi>
                            <lista_naredbi>
                                <lista_naredbi>
                                    <lista_naredbi>
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <lista_naredbi>
                                                    <naredba>
                                                        <izraz_naredba>
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <unarni_izraz>
                                                                        <postfiks_izraz>
                                                                            <postfiks_izraz>
                                                                                <primarni_izraz>
                                                                                    IDN , buffer
                                                                            L_UGL_ZAGRADA , [
                                                                            <izraz>
                                                                                <izraz_pridruzivanja>
                                                                                    <log_ili_izraz>
                                                                                        <log_i_izraz>
                                                                                            <bin_ili_izraz>
                                                                                                <bin_xili_izraz>
                                                                                                    <bin_i_izraz>
                                                                                                        <jednakosni_izraz>
                                                                                                            <odnosni_izraz>
                                                                                                                <aditivni_izraz>
                                                                                                                    <multiplikativni_izraz>
                                                                                                                        <cast_izraz>
                                                                                                                            <unarni_izraz>
                                                                                                                                <postfiks_izraz>
                                                                                                                                    <primarni_izraz>
                                                                                                                                        BROJ , 0
                                                                            D_UGL_ZAGRADA , ]
                                                                    OP_PRIDRUZI , =
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 1
                                                            TOCKAZAREZ , ;
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <postfiks_izraz>
                                                                            <primarni_izraz>
                                                                                IDN , buffer
                                                                        L_UGL_ZAGRADA , [
                                                                        <izraz>
                                                                            <izraz_pridruzivanja>
                                                                                <log_ili_izraz>
                                                                                    <log_i_izraz>
                                                                                        <bin_ili_izraz>
                                                                                            <bin_xili_izraz>
                                                                                                <bin_i_izraz>
                                                                                                    <jednakosni_izraz>
                                                                                                        <odnosni_izraz>
                                                                                                            <aditivni_izraz>
                                                                                                                <multiplikativni_izraz>
                                                                                                                    <cast_izraz>
                                                                                                                        <unarni_izraz>
                                                                                                                            <postfiks_izraz>
                                                                                                                                <primarni_izraz>
                                                                                                                                    BROJ , 1
                                                                        D_UGL_ZAGRADA , ]
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 3
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , buffer
                                                                    L_UGL_ZAGRADA , [
                                                                    <izraz>
                                                                        <izraz_pridruzivanja>
                                                                            <log_ili_izraz>
                                                                                <log_i_izraz>
                                                                                    <bin_ili_izraz>
                                                                                        <bin_xili_izraz>
                                                                                            <bin_i_izraz>
                                                                                                <jednakosni_izraz>
                                                                                                    <odnosni_izraz>
                                                                                                        <aditivni_izraz>
                                                                                                            <multiplikativni_izraz>
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                BROJ , 2
                                                                    D_UGL_ZAGRADA , ]
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 5
                                                    TOCKAZAREZ , ;
                                        <naredba>
                                            <izraz_naredba>
                                                <izraz>
                                                    <izraz_pridruzivanja>
                                                        <unarni_izraz>
                                                            <postfiks_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , buffer
                                                                L_UGL_ZAGRADA , [
                                                                <izraz>
                                                                    <izraz_pridruzivanja>
                                                                        <log_ili_izraz>
                                                                            <log_i_izraz>
                                                                                <bin_ili_izraz>
                                                                                    <bin_xili_izraz>
                                                                                        <bin_i_izraz>
                                                                                            <jednakosni_izraz>
                                                                                                <odnosni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            BROJ , 3
                                                                D_UGL_ZAGRADA , ]
                                                        OP_PRIDRUZI , =
                                                        <izraz_pridruzivanja>
                                                            <log_ili_izraz>
                                                                <log_i_izraz>
                                                                    <bin_ili_izraz>
                                                                        <bin_xili_izraz>
                                                                            <bin_i_izraz>
                                                                                <jednakosni_izraz>
                                                                                    <odnosni_izraz>
                                                                                        <aditivni_izraz>
                                                                                            <multiplikativni_izraz>
                                                                                                <cast_izraz>
                                                                                                    <unarni_izraz>
                                                                                                        <postfiks_izraz>
                                                                                                            <primarni_izraz>
                                                                                                                BROJ , 7
                                                TOCKAZAREZ , ;
                                    <naredba>
                                        <izraz_naredba>
                                            <izraz>
                                                <izraz_pridruzivanja>
                                                    <unarni_izraz>
                                                        <postfiks_izraz>
                                                            <postfiks_izraz>
                                                                <primarni_izraz>
                                                                    IDN , buffer
                                                            L_UGL_ZAGRADA , [
                                                            <izraz>
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        BROJ , 4
                                                            D_UGL_ZAGRADA , ]
                                                    OP_PRIDRUZI , =
                                                    <izraz_pridruzivanja>
                                                        <log_ili_izraz>
                                                            <log_i_izraz>
                                                                <bin_ili_izraz>
                                                                    <bin_xili_izraz>
                                                                        <bin_i_izraz>
                                                                            <jednakosni_izraz>
                                                                                <odnosni_izraz>
                                                                                    <aditivni_izraz>
                                                                                        <multiplikativni_izraz>
                                                                                            <cast_izraz>
                                                                                                <unarni_izraz>
                                                                                                    <postfiks_izraz>
                                                                                                        <primarni_izraz>
                                                                                                            BROJ , 9
                                            TOCKAZAREZ , ;
                                <naredba>
                                    <izraz_naredba>
                                        <izraz>
                                            <izraz_pridruzivanja>
                                                <unarni_izraz>
                                                    <postfiks_izraz>
                                                        <primarni_izraz>
                                                            IDN , ptr
                                                OP_PRIDRUZI , =
                                                <izraz_pridruzivanja>
                                                    <log_ili_izraz>
                                                        <log_i_izraz>
                                                            <bin_ili_izraz>
                                                                <bin_xili_izraz>
                                                                    <bin_i_izraz>
                                                                        <jednakosni_izraz>
                                                                            <odnosni_izraz>
                                                                                <aditivni_izraz>
                                                                                    <multiplikativni_izraz>
                                                                                        <cast_izraz>
                                                                                            <unarni_izraz>
                                                                                                <postfiks_izraz>
                                                                                                    <primarni_izraz>
                                                                                                        IDN , buffer
                                        TOCKAZAREZ , ;
                            <naredba>
                                <izraz_naredba>
                                    <izraz>
                                        <izraz_pridruzivanja>
                                            <unarni_izraz>
                                                <postfiks_izraz>
                                                    <primarni_izraz>
                                                        IDN , result
                                            OP_PRIDRUZI , =
                                            <izraz_pridruzivanja>
                                                <log_ili_izraz>
                                                    <log_i_izraz>
                                                        <bin_ili_izraz>
                                                            <bin_xili_izraz>
                                                                <bin_i_izraz>
                                                                    <jednakosni_izraz>
                                                                        <odnosni_izraz>
                                                                            <aditivni_izraz>
                                                                                <multiplikativni_izraz>
                                                                                    <cast_izraz>
                                                                                        <unarni_izraz>
                                                                                            <postfiks_izraz>
                                                                                                <primarni_izraz>
                                                                                                    BROJ , 0
                                    TOCKAZAREZ , ;
                        <naredba>
                            <naredba_petlje>
                                KR_WHILE , while
                                L_ZAGRADA , (
                                <izraz>
                                    <izraz_pridruzivanja>
                                        <log_ili_izraz>
                                            <log_i_izraz>
                                                <bin_ili_izraz>
                                                    <bin_xili_izraz>
                                                        <bin_i_izraz>
                                                            <jednakosni_izraz>
                                                                <odnosni_izraz>
                                                                    <odnosni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , ptr
                                                                    OP_LT , <
                                                                    <aditivni_izraz>
                                                                        <aditivni_izraz>
                                                                            <multiplikativni_izraz>
                                                                                <cast_izraz>
                                                                                    <unarni_izraz>
                                                                                        <postfiks_izraz>
                                                                                            <primarni_izraz>
                                                                                                IDN , buffer
                                                                        PLUS , +
                                                                        <multiplikativni_izraz>
                                                                            <cast_izraz>
                                                                                <unarni_izraz>
                                                                                    <postfiks_izraz>
                                                                                        <primarni_izraz>
                                                                                            BROJ , 5
                                D_ZAGRADA , )
                                <naredba>
                                    <slozena_naredba>
                                        L_VIT_ZAGRADA , {
                                        <lista_naredbi>
                                            <lista_naredbi>
                                                <naredba>
                                                    <izraz_naredba>
                                                        <izraz>
                                                            <izraz_pridruzivanja>
                                                                <unarni_izraz>
                                                                    <postfiks_izraz>
                                                                        <primarni_izraz>
                                                                            IDN , result
                                                                OP_PRIDRUZI , =
                                                                <izraz_pridruzivanja>
                                                                    <log_ili_izraz>
                                                                        <log_i_izraz>
                                                                            <bin_ili_izraz>
                                                                                <bin_xili_izraz>
                                                                                    <bin_i_izraz>
                                                                                        <jednakosni_izraz>
                                                                                            <odnosni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <aditivni_izraz>
                                                                                                        <multiplikativni_izraz>
                                                                                                            <cast_izraz>
                                                                                                                <unarni_izraz>
                                                                                                                    <postfiks_izraz>
                                                                                                                        <primarni_izraz>
                                                                                                                            IDN , result
                                                                                                    PLUS , +
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <unarni_operator>
                                                                                                                    ASTERISK , *
                                                                                                                <cast_izraz>
                                                                                                                    <unarni_izraz>
                                                                                                                        <postfiks_izraz>
                                                                                                                            <primarni_izraz>
                                                                                                                                IDN , ptr
                                                        TOCKAZAREZ , ;
                                            <naredba>
                                                <izraz_naredba>
                                                    <izraz>
                                                        <izraz_pridruzivanja>
                                                            <unarni_izraz>
                                                                <postfiks_izraz>
                                                                    <primarni_izraz>
                                                                        IDN , ptr
                                                            OP_PRIDRUZI , =
                                                            <izraz_pridruzivanja>
                                                                <log_ili_izraz>
                                                                    <log_i_izraz>
                                                                        <bin_ili_izraz>
                                                                            <bin_xili_izraz>
                                                                                <bin_i_izraz>
                                                                                    <jednakosni_izraz>
                                                                                        <odnosni_izraz>
                                                                                            <aditivni_izraz>
                                                                                                <aditivni_izraz>
                                                                                                    <multiplikativni_izraz>
                                                                                                        <cast_izraz>
                                                                                                            <unarni_izraz>
                                                                                                                <postfiks_izraz>
                                                                                                                    <primarni_izraz>
                                                                                                                        IDN , ptr
                                                                                                PLUS , +
                                                                                                <multiplikativni_izraz>
                                                                                                    <cast_izraz>
                                                                                                        <unarni_izraz>
                                                                                                            <postfiks_izraz>
                                                                                                                <primarni_izraz>
                                                                                                                    BROJ , 1
                                                    TOCKAZAREZ , ;
                                        D_VIT_ZAGRADA , }
                    <naredba>
                        <naredba_skoka>
                            KR_RETURN , return
                            <izraz>
                                <izraz_pridruzivanja>
                                    <log_ili_izraz>
                                        <log_i_izraz>
                                            <bin_ili_izraz>
                                                <bin_xili_izraz>
                                                    <bin_i_izraz>
                                                        <jednakosni_izraz>
                                                            <odnosni_izraz>
                                                                <aditivni_izraz>
                                                                    <multiplikativni_izraz>
                                                                        <cast_izraz>
                                                                            <unarni_izraz>
                                                                                <postfiks_izraz>
                                                                                    <primarni_izraz>
                                                                                        IDN , result
                            TOCKAZAREZ , ;
                D_VIT_ZAGRADA , }
Semantic Analysis
<init_deklarator> ::= <deklarator>

Analysis Errors

SEMANTIC ERRORS:
semantic error